登录论坛

查看完整版本 : 停止MATLAB GUI回调


poster
2019-12-14, 20:13
我有一个“开始”和“停止”按钮。当我点击START时,我在回调中运行了一堆代码。从根本上讲,这是一个顺序的“脚本”,用于打开阀,分配水然后关闭阀...没有while()循环,并且不会重复。我希望能够使用STOP按钮随时停止此过程。我看到的大多数相关答案都在使用while()循环的情况下。有人还建议定期检查是否按下了STOP按钮(使用变量或句柄变量)。

由于我没有while循环,所以我不能那样解决。另外,我希望能够立即退出,而不必定期检查(因为在我的代码中多次检查将是丑陋且令人困惑的)。有没有办法终止被STOP按钮中断的回调?如果不是,是否可以使“开始”按钮运行一个.m文件,然后使“停止”按钮终止该.m文件?

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

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

谢谢。



回答:

不管是否循环,您都将被迫在代码中插入“检查点”,以使程序继续执行或停止。查看函数 (http://www.mathworks.com/help/techdoc/ref/function.html) ,命令return将在所需的点恢复执行。

您可以选择的是使用事件和侦听器 (http://www.mathworks.com/help/techdoc/ref/brk7uzk.html#brpeid9)传播“停止触发”的“方法”,或The MathWorks提供的解决方案。



更多&回答... (https://stackoverflow.com/questions/4694141)