[問題] GUI callback即時回傳while迴圈內的變數

作者: chris0104 (如果這就是愛..)   2016-04-20 14:00:07
各位大大好,小弟需求是這樣...
1. GUI上有兩個pushbutton: start & pause以及一個edit text
2. 按下start,對螢幕上的某數值X做影像辨識,X會隨時間改變,所以我用while loop
直到X>300才跳出迴圈,在迴圈執行的同時,我想把每次辨識到的X顯示在edit text
3. 按下Pause可以暫停影像辨識
遇到的問題是這樣...
Q1. 我在function start_callback裡面寫
handles.pauseflag = 0; %判別pause為true or false
  while
X = ocr(); %ocr為影像辨識函式
set(handles.edittext, 'String', num2str(X));
if X>300,
break;
elseif handles.pauseflag==1, %pause為true
break;
end
end
結果是必須等while迴圈跑完,才會顯示最後一筆X在edit text,
並不如我預期,即時顯示每一筆X,請問我該加什麼敘述?
Q2. 我在function pause_callback裡面寫
handles.pauseflag = 1;
guidata(hObject, handles);
結果完全無法停止while迴圈,請問我需要加入甚麼敘述?
小弟想了一整夜,實在找不到方法,懇請各位大大賜教,謝謝
********** 解答 ***********
http://stackoverflow.com/questions/28364243/stop-a-gui-in-a-middle-of-process-in-matlab
***************************
作者: jatj   2016-04-22 08:56:00
drawnow 即可即時顯示迴圈的內容在UI上

Links booklink

Contact Us: admin [ a t ] ucptt.com