2014-10-08 3 views
0

MATLAB 2014a에서 실행 중이며 명령 행이 반환되지 않습니다. C 또는 명령 - - 내가 제어을 수행 할 때MATLAB 스크립트가 Mac에서 종료되지 않습니다.

a = 0; 
while (1) 
    a = a + 1; 
    if (a ~= 2) 
     continue; 
    end; 
end; 

는 응답이 없습니다. (또는 기타 일반적인 키보드 키 조합). 스크립트를 종료시키는 방법은 무엇입니까?

+0

관련 내용 : [ "tight loop"이란 무엇입니까?] (http://stackoverflow.com/q/2212973/2278029). 루프가 정상적으로 종료되도록 하시겠습니까? 아니면 control-C를 사용하여 스크립트/함수를 중단 할 수 있습니까? – horchler

+0

난 그냥 리눅스 상자에 R2013a와 이것을 시도하고 같은 행동을했습니다. 나는 인터럽트 신호가 그것에 도달하지 않는 이유를 알기 위해 MATLAB 인터프리터에 친밀하게 대해 알고 있어야한다고 생각한다. – AnonSubmitter85

+0

@ AnonSubmitter85 : 단단한 루프이기 때문에 위의 제 의견에있는 링크를 참조하십시오. 루프는 명령 윈도우가 실행중인 코드를 인터럽트하기에 충분한 시간/리소스를 허용하는 다른 함수 (예 : 그래픽 관련 항목)에 대한 명시적인 '일시 중지'또는 호출을 가져야합니다. – horchler

답변

1

"계속"대신 "중단"을 시도하십시오.

일시적으로 현재의 패스에만에 대한 루프의 몸에 남아있는 문을 건너 뛰는, 프로그램 루프의 실행을 중단 "계속"

여기 내 추론이다.

그래서 그것을 루프에 남아있는 코드를 건너 뛰고 다음 귀하의 경우 사실 항상 while 루프의 상태를 재평가 완전히 루프를 종료하지 않습니다.

대조적으로 break는 루프를 완전히 종료합니다.

대략가는 또 다른 방법은 예를 들어, 루프 문을 다시 작성하는 것입니다

a = 0; 
while a~=2 
    a = a + 1; 
end 

는하지만 CTRL-C와 실행을 중단하지 않을 이유는 확실하지. 나는 당신의 스크립트가 오랜 시간 동안 실행되어 당신의 기계가 점진적으로 반응이 약할지도 모를 것으로 기대한다. 이 기사에 의해 암시 : http://www.mathworks.com/help/matlab/matlab_env/stop-execution.html