2010-03-08 2 views
34

MATLAB에서 긴 시뮬레이션을 실행하고있어 중단하고 다시 실행해야한다는 것을 깨달았습니다. 그러나 MATLAB은 실제로이 계산에 포함되며 응답하지 않습니다. MATLAB을 죽이지 않고이 실행을 중단하려면 어떻게해야합니까?정말 바쁠 때 어떻게 MATLAB을 중단 할 수 있습니까?

(I이 많은 Windows 프로그램에 문제가 실현하지만 MATLAB과 정말 급성입니다.) 명령 창에

+1

Ctrl-C가 작동하지 않습니까? – Dirk

+2

중복 : http://stackoverflow.com/questions/1500314/how-to-abort-a-running-program-in-matlab – gnovice

+1

아니요, 문제입니다. –

답변

22

이동, 그리고 Ctrl-C를 많이 맞았습니다. 내 경험에 비추어 볼 때, 싱글 코어 머신에서는 많은 양의 출력을하지 않으면 기회가 없습니다. 멀티 코어 또는 멀티 프로세서 머신에서는 결국에는 멈추게되지만 시간은 오래 걸립니다.

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

추가 참조하십시오 : 그것은 (1) 정말 긴 아무것도 실행하기 전에 작업 공간의 스냅 샷을 저장하고 (2) 매우 긴 계산에서, 일부 변수를 작성하는 것이 좋습니다 (정전 등으로) 중단 된 경우 계산을 재개 할 수 있도록 때때로 파일에 저장됩니다.

+1

나는 동의하지만 때로는 Windows 작업 관리자 대신 Ctrl + C를 사용하는 것보다 죽인 원숭이처럼 죽인다. –

+4

+1 : 미치광이처럼 CTRL-C를 누르는 것이 보통 효과가 있지만, 모든 것을 종료 할 때 모든 것이 작동하는 경우가 있습니다. 어느 쪽이 최소로 말하기 위해 성가시다. –

18

MATLAB이 CTRL-C에 반응하는 것이 오히려 무엇을하는지에 달려 있습니다. 예를 들어 BLAS 또는 LAPACK 통화의 중간에있는 경우 해당 통화가 반환 될 때까지 응답하지 않습니다. 많은 MATLAB 행이 실행되는 코드 블록에 있다면 CTRL-C가 더 신속하게 반응 할 것으로 기대할 수 있습니다.

1

Windows 작업 관리자에서 MATLAB 프로세스를 찾고 우선 순위를 높게 또는 낮게 설정하고 다른 프로그램의 우선 순위를 낮추거나 높게 설정할 수 있습니다. 내 경험상, 그것은 효율적인 방법입니다.

5
이 문제를 처리하기위한 또 다른 전략은 같이 (for 또는 while 루프 특히에서) 계산에 어딘가에 아주 짧은 일시 정지를 소개하는 것입니다

:

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

이이 기회를 증가 당신의 광란 Ctrl 키 - 실제로 멈출거야.

-3

중지하고 죽이고 다시 실행은 작업 관리자 -> 프로세스는 다음 MATLAB.exe 벌금 이동 창에 나쁜의 choise 하고 프로세스 끝내기 버튼을 눌러 실 거예요 경우

+11

OP는 "MATLAB을 죽이지 않고"말했다. – Jeroen

+0

>> '중지하고 다시 실행해야한다는 것을 알았습니다' –

+1

MATLAB을 종료하는 것과는 다른 ** 중지 및 재실행 **이 아닙니다 **. OP는 스크립트를 실행하기 전에 생성 된 작업 공간에서 일부 변수를 보존하려고 할 수 있습니다. MATLAB을 죽이면 해당 변수를 포함한 모든 것이 손실됩니다. -1. – rayryeng

6

I 일시 중지 할 수있는 아주 간단한 트릭을 가지고있다 응답하지 않는 실행을 중지 (또는 중지)합니다. 내 시뮬레이션이 긴 루프를 실행하는 경우 항상 다음을 수행하십시오

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

그리고 다음이 다음이 포함 된 파일 empty_script.m 만들 : 나는 실행을 일시 정지 할 때마다

%keyboard 

내가 외부 텍스트를 열을 편집기를 열고 empty_script.mkeyboard이라는 줄의 주석 처리를 제거하십시오. 이로 인해 변수를 보거나 물건을 수정하거나 심지어 프로그램을 중단 할 수있는 디버깅 모드가됩니다.

관련 문제