我跑在 MATLAB 长的模拟,我已经意识到我需要停下来并重新运行。不过,MATLAB是真正进入这个计算,并且它停止响应。我怎样才能打断这个运行没有杀害MATLAB?

(我知道这是许多Windows程序的问题,但它确实急性与MATLAB。)

有帮助吗?

解决方案

转到命令窗口,按下Ctrl-C很多。从我的经验,一个单核的机器上,你没有机会,除非你做大量输出。在多核心或支持多处理器的机器,你可能会停止,最终,但这需要时间。

HTTP请参见://www.mathworks。 COM /支持/溶液/ EN /数据/ 1-188VX / index.html中

添加:这是一个很好的做法,(1)保存您的工作空间的快照很长的运行任何东西之前和(2)一个很长的计算之内,写一些变量到一个文件不时,这样就可以继续计算,如果它被中断(由电源故障,例如)。

其他提示

MATLAB如何很好地响应CTRL-C,而取决于它在做什么。如果是在BLAS或LAPACK呼吁例如中间,它不会响应,直到调用返回。如果您在正在执行大量的MATLAB的多行的代码块的时候,你可以期待CTRL-C更敏感。

我有一个很简单的技巧来暂停(或者停止)一个非响应性执行。 如果我的模拟运行很长的循环,我总是做到以下几点:

for ii = 1:N
   do_stuff();
   clear empty_script;
   empty_script;
end

和然后创建包含文件empty_script.m以下内容:

%keyboard

每当我想暂停执行我打开外部文本编辑器,并取消对行并称keyboard empty_script.m。这使我在调试模式下,我可以观察变量,修改的东西,甚至停止程序。

处理这一问题的另一种策略是在计算中(特别是在一个for或while循环)某处引入一个很短的暂停,如:

for ii = 1:N
do_stuff();
pause(0.1);
end

这增加了你的疯狂按Ctrl-C'ing实际上将停止它的机会。

您可以在Windows任务管理器的进程MATLAB和设置优先级为高或低,并让其他程序具有更低或更高的优先级。根据我的经验,这是一个有效的方式。

如果你不会停下来,然后重新运行杀人是个不错的选择 转到窗口任务管理器 - >进程然后罚款MATLAB.exe和推结束进程按钮

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top