我怎样才能打断MATLAB当它变得真的很忙碌?
-
18-09-2019 - |
题
我跑在 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和推结束进程按钮