それは本当に忙しいとき、どのように私はMATLABを中断することができますか?
-
18-09-2019 - |
質問
私は停止する必要が実現したこと MATLAB のに長いシミュレーションを実行していますよそして再実行してください。しかし、MATLABは、この計算には本当にあり、そしてそれが応答を停止しています。どのように私はMATLABを殺すことなく、この実行を中断することができますか?
(私はこれが多くのWindowsプログラムに問題があり実現が、それはMATLABと本当に深刻です。)
解決
コマンドウィンドウに移動し、Ctrlキーを押しながらCをたくさん打ちます。あなたは、出力の多くを行う場合を除き、私の経験から、シングルコアのマシン上で、あなたは、チャンスを持っていません。マルチコアまたはマルチプロセッサマシンでは、おそらく最終的にそれを停止されますが、それは時間がかかります。
//www.mathworks:また、のhttpを参照してください。 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罰金Windowsのタスクマネージャ - >プロセスに移動し、プロセスの終了]ボタンを押してください。