2013-06-04 195 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