2013-02-22 44 views
0

我在Matlab中創建了一個GUI,用戶在開始時按下的其中一個按鈕有一個while循環。我在這個while循環中逐個幀。我的問題是,我希望用戶能夠暫停此過程(而不是完全停止),因此我添加了一個暫停按鈕,並且在按下此按鈕時更改了一個標誌。我需要在這個matlab中放置一個代碼,暫停循環過程,因爲暫停按鈕被按下一次,並且當再次按下暫停按鈕時將繼續循環過程。我試過暫停while循環,並在Matlab中做別的事情

if flag==1 
    pause on; 
else 
    pause off 
end; 

但是我看到「暫停」;不會暫停一段時間循環。有沒有可以使用的功能或方法?另外,當代碼處於暫停模式時,我希望其他按鈕能夠工作;例如另一個按鈕顯示一些單詞,所以當處於暫停模式時,如果按下這個顯示單詞按鍵,它必須在屏幕上顯示這些單詞。我嘗試使用「waitfor」,但它停止了一切,這個顯示按鈕不起作用。 我將不勝感激任何形式的幫助。

+0

嘗試'help pause'作爲'暫停on'不是發起暫停的命令。 – 2013-02-22 11:35:21

+0

你能給我們一個while循環的樣子代碼示例嗎? – ThijsW 2013-02-22 14:25:40

+0

保存當前狀態並不簡單,打破while循環,讓用戶做他想做的事,然後在用戶活動停止時從保存點開始另一個while循環? – 2013-02-22 14:58:40

回答

1

你可能想使用MATLAB的WAITFOR功能來做到這一點。

+0

在Matlab的幫助下,它說: 「儘管waitfor阻止其調用者繼續,但響應各種事件(例如,按下鼠標按鈕)的回調仍然可以運行,不受waitfor的影響。」然而,當我在我的GUI系統中嘗試它時,它不起作用。 – user1132254 2013-02-22 12:34:48

+0

@ user1132254請更具體一些,什麼沒有工作? – 2013-02-22 15:36:37

0

我想這可能是你在找什麼

while flag == 1 
    % Get/process your user input here 

    % Finish checking user input 
    pause(1) %Check every second, can of course be reduced 
end 
+0

由於我不時使用暫停,暫停(1)只會暫停我的系統一秒鐘。我希望我的系統暫停,直到我發出停止暫停的命令。此外,當系統暫停時,我希望其他按鈕可以使用其他功能。 – user1132254 2013-02-22 12:13:55

+0

對於第一部分,我假定用戶按下按鈕將標誌設置爲1,我相應地編輯了我的帖子。對於第二部分來說,如果一切仍然有效,目前還不清楚你究竟想要暫停什麼。 – 2013-02-22 15:38:38