2013-02-22 73 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