정말로 바쁠 때 Matlab을 어떻게 방해 할 수 있습니까?
-
18-09-2019 - |
문제
긴 시뮬레이션을 실행하고 있습니다 MATLAB 내가 멈추고 재확인해야한다는 것을 깨달았습니다. 그러나 Matlab은 실제로이 계산에 속하며 응답이 중지됩니다. Matlab을 죽이지 않고이 달리기를 어떻게 방해 할 수 있습니까?
(나는 이것이 많은 Windows 프로그램의 문제라는 것을 알고 있지만 Matlab과는 정말 심각합니다.)
해결책
명령 창으로 가서 Ctrl-C를 많이 쳤다. 내 경험에서, 단일 코어 머신에서는 많은 출력을하지 않는 한 기회가 없습니다. 멀티 코어 또는 멀티 프로세서 머신에서는 결국 멈출 수 있지만 시간이 걸릴 것입니다.
또한보십시오 http://www.mathworks.com/support/solutions/en/data/1-188vx/index.html
추가: (1) 작업 공간의 스냅 샷을 실제로 길게 실행하기 전에 작업 공간의 스냅 샷을 저장하는 것이 좋습니다. 중단 된 경우 계산 (정전으로).
다른 팁
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
. 이로 인해 변수를 보거나 물건을 수정하거나 프로그램을 중지 할 수있는 디버깅 모드에 있습니다.
이 문제를 다루는 또 다른 전략은 다음과 같이 계산의 어딘가 (특히 또는 while 루프) 어딘가에 매우 짧은 일시 중지를 도입하는 것입니다.
for ii = 1:N
do_stuff();
pause(0.1);
end
이것은 당신의 미치광이 Ctrl-c'ing이 실제로 그것을 막을 가능성을 증가시킵니다.
Windows Task Manager에서 MATLAB 프로세스를 찾아 우선 순위를 높거나 낮게 설정하고 다른 프로그램이 우선 순위가 낮거나 더 낮아질 수 있습니다. 내 경험상 효율적인 방법입니다.
당신이 멈추지 않고 재실행하지 않으면 죽이기가 나쁜 것이 아닙니다. 선택은 Windows Task Manager-> 프로세스로 이동 한 다음 Matlab.exe를 벌리고 최종 프로세스 버튼을 누르십시오.