2013-06-04 4 views
1

MatLab GUI를 처음 사용하고 GUI에 "계속"버튼이 있습니다.while 루프에서 멈춤. MATLAB GUI

기본적으로 프로그램의 일부 지점에서 프로그램은 사용자가 계속 진행하기 위해 "계속하기"버튼을 클릭 할 때까지 기다려야합니다.

내가 이것을 할 수있는 유일한 방법은 버튼을 클릭하고 루프를 빠져 나올 때까지 while 루프에서 무한하게 프로그램 루프를 만드는 것입니다. 이것은 효과가없는 것 같습니다.

while (get(handles.continue,'value')) == 0 
    disp('in the loop') 
    guidata(hObject,handles); 
end 

을 그러나 루프를 종료하지 않고, 다음과 같이

그래서 루프입니다. 단추를 pushbutton에서 togglebutton으로 변경하려고했지만 루프를 종료하지 않습니다.

나는 프로그램을 대기 상태로 만드는 것이 가장 효율적인 방법은 아니지만 누구나 왜 그 루프를 빠져 나가지 못하고 왜 더 효율적인 방법을 제안 할 수 있는지 알고있다.

+3

[여기] (http://stackoverflow.com/questions/4522447/breaking-from-for-loop-in-matlab-gui?rq=1)와 같은 문제가있는 것 같습니다. 허용 된 답변을 참조하십시오. –

답변

1

이 작업을 수행하는 올바른 방법은 계속 버튼과 관련된 callback을 작성하는 것입니다 :

다음
set(handles.continue, 'Callback', @continueProcessing); 

, 그것은 당신이 사용자가 버튼을 밀어 후에 할 필요가 무엇이든 수행 할 continueProcessing 함수를 작성 . 프로토 타입은 다음과 같습니다 : 버튼을 누를 때마다

function continueProcessing(hObj, event) 
    ... 
end 

continueProcessing()가 실행됩니다. MATLAB 의 콜백은의 첫 번째 두 개의 인수가 hObj (콜백이 호출되는 구성 요소의 핸들)이고 eventdata이어야합니다.