代码之家  ›  专栏  ›  技术社区  ›  Nathan Fellman

MATLAB真的很忙,我怎么能打断它呢?

  •  34
  • Nathan Fellman  · 技术社区  · 16 年前

    我在做一个很长的模拟 MATLAB

    6 回复  |  直到 5 年前
        1
  •  22
  •   RedX    14 年前

    转到命令窗口,并多次按Ctrl-C。根据我的经验,在单核机器上你没有机会,除非你有很多输出。在多核或多处理器机器上,您可能最终会停止它,但这需要时间。

    另请参见 http://www.mathworks.com/support/solutions/en/data/1-188VX/index.html

    补充 :一个好的做法是:(1)在运行任何非常长的计算之前保存工作区的快照;(2)在非常长的计算中,不时将一些变量写入文件,以便在计算中断(例如,由于电源故障)时可以恢复计算。

        2
  •  19
  •   Edric    16 年前

    MATLAB对CTRL-C的响应如何取决于它在做什么。如果它在BLAS或LAPACK呼叫的中间,它将不会响应,直到该呼叫返回。如果您在一个代码块中执行了很多行MATLAB,那么您可以期望CTRL-C的响应速度更快。

        3
  •  6
  •   masdeseiscaracteres    12 年前

    我有一个非常简单的技巧来暂停(或停止)没有响应的执行。

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

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

    %keyboard
    

    keyboard 在里面 空脚本.m

        4
  •  5
  •   Doodles    14 年前

    处理此问题的另一个策略是在计算中的某个地方引入一个非常短的暂停(特别是在for或WHILE循环中),如:

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

    这增加了你疯狂的控制实际上会阻止它的机会。

        5
  •  1
  •   Farzad Amirjavid    14 年前

    您可以在windows任务管理器中找到MATLAB进程,并将优先级设置为高或低,让其他程序具有较低或较高的优先级。以我的经验,这是一种有效的方法。

        6
  •  -3
  •   Elhussien Hassan    13 年前

    如果你不想停下来重演,那么杀戮是不错的选择 转到windows任务管理器->进程,然后单击MATLAB.exe并按下结束进程按钮