如何在应用程序设计中终止执行?

186次浏览(最近30天)
法扎德
法扎德 2020年5月2日
编辑: 图像分析 2020年5月3日
嗨,所有
如何在MATLAB工作空间中放置一个具有Ctrl+C相同功能的按钮?能立即处死死刑的人?

接受的答案

埃米尔哈姆萨
埃米尔哈姆萨 2020年5月2日
使用这个没有文档的MATLAB命令发送一个Ctrl+C到MATLAB命令窗口
com.mathworks.mde.cmdwin.CmdWinMLIF.getInstance () .processKeyFromC (67,“C”
13个评论
埃米尔哈姆萨
埃米尔哈姆萨 2020年5月3日
不,它只是等价于我答案中的代码。
我能想到的唯一选择 可能 在本例中,工作是使用fsolve()的OutputFcn属性。该outputFcn提供了基于条件终止fsolve()的选项。您只需要找出一种方法来将按钮按下与outputFcn进行通信。例如,使用全局变量(一种简单的方法,但长期来看可能会导致问题)或将句柄类传递给OutputFcn,并根据按钮按下事件更改其属性之一。这是该方法的概要。你可以试一试,看看能不能用。

登录评论。

答案(1)

图像分析
图像分析 2020年5月2日
那不是个好主意。最好优雅地中止代码。比如在GUI上有一个复选框,上面写着“现在完成”,如果用户选中了它,它就会优雅地退出函数,让程序继续运行。如果你在一个循环中
K = 1: 1000000
%一些强化代码.....
%现在看看用户是否想退出:
如果app.chkFinishNow.Value
返回%或休息。退出函数(如果使用return)或for循环(如果使用break)。
结束
结束
在我看来,按照你的要求去做是非常糟糕的编程实践,也许大多数人也是如此。
2的评论
图像分析
图像分析 2020年5月3日
不。如果被检查,就会立即中止。你要做的是:
%使用户可见,并确保未选中。
app.chkFinishNow.Value = false;
app.chkFinishNow.Visible =“上”
K = 1: 1000000
%一些强化代码.....
%现在看看用户是否想退出:
如果app.chkFinishNow.Value
打破%退出函数(如果使用return)或for循环(如果使用break)。
结束
结束
%在循环结束时,取消选中Finish Now复选框并使其不可见。
app.chkFinishNow.Value = false;
app.chkFinishNow.Visible =“关闭”

登录评论。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!