문제

긴 시뮬레이션을 실행하고 있습니다 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를 벌리고 최종 프로세스 버튼을 누르십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top