在Matlab中,是否可以终止脚本,但将所有内部变量保存到工作区?

Leo*_*Leo 18 workspace matlab save keyboardinterrupt

我正在运行一个脚本,但它花了太长时间,所以我想终止脚本.然而,它已经计算了很多我理想情况下不想丢弃的数据.是否有ctrl-C将内部函数变量保存到工作区的替代方法?

理想情况下,我正在寻找一个Matlab键盘快捷键ctrl-C,但如果真的无法完成,也许有一种方法可以在我的函数脚本中执行此操作.知道如何让我的脚本做出反应ctrl-C,或者我可以取消的GUI元素,然后通过我的脚本保存变量?

我发现了一些类似的问题,但这些问题没有回答我的问题:

关闭/暂停

终止

不同的问题,类似的答案:

DBSTOP

编辑:

这个问题是不同的,因为提问者的问题是不同的:他们想知道错误在哪里,在我的案例中,Matlab已经说过了.我只想在工作内存中保留所有数据.

Den*_*din 36

MATLAB版本2016a及更高版本

如果您使用的是2016a版本的Matlab,则在运行脚本时会出现一个暂停按钮(如@pedre所述).这允许您暂停脚本,检查变量,然后继续.

请务必查看下一节,因为这可能仍然很方便.

较旧的MATLAB版本

实际上诀窍是使用dbstop if error.

首先使用它,然后运行您的脚本.一旦引入错误(例如,使用Ctrl+ C),您就有机会手动检查/保存工作区.

您将无法恢复脚本.

  • @Leo我认为你可以在错误发生之前随时调用它,虽然将调试命令放在常规函数中感觉有点奇怪.就个人而言,当我把它放在我的`startup.m`中后,我发现我的效率显着上升.(如果有一个错误会破坏我的代码,我想在99%的情况下看一下它). (2认同)