停止MATLAB GUI回调

时间:2011-01-14 17:44:49

标签: user-interface matlab interrupt matlab-guide

我有一个START和STOP按钮。当我点击START时,我在回调中运行了一堆代码。它基本上是一个顺序的“脚本”,打开阀门,分配水然后关闭阀门......没有while()循环,它不重复。我希望能够使用STOP按钮随时停止此过程。我见过的大多数相关答案都是在使用while()循环的情况下。有些人还建议定期检查STOP按钮是否被按下(使用变量或句柄变量)。

由于我没有while循环,我无法解决这个问题。此外,我希望能够立即退出,而无需定期检查(因为在我的代码中多次检查将是丑陋和混乱)。有没有办法终止被STOP按钮中断的回调?如果没有,是否可以让START按钮运行.m文件,然后让STOP按钮终止该.m文件?

最糟糕的情况是定期检查变量。

更新: 好吧,看起来最糟糕的情况是MATLAB建议的...... http://www.mathworks.com/support/solutions/en/data/1-33IK85/index.html?product=ML&solution=1-33IK85

感谢。

1 个答案:

答案 0 :(得分:2)

无论是否循环,您都将被迫在代码中插入'checkpoints',程序执行将继续或停止。查看functions,命令return将在所需的点恢复执行。

您可以选择使用Events and Listeners或The MathWorks提供的解决方案“停止触发”传播的“方法”。