2008-08-18 8 views
20

m- 파일을 실행하기 위해 -r 플래그를 사용할 수 있다는 것을 MATLAB 도움말 (matlab -h)에서 볼 수 있습니다. 이 작업을 수행하면 MATLAB이 스크립트를 시작한 것처럼 보이지만 즉시 반환됩니다. 스크립트는 정상적으로 처리되지만 기본 앱은 이미 반환되었습니다.명령 줄 스크립트가 완료 될 때까지 MATLAB이 반환되지 않게하려면 어떻게합니까?

일단 명령이 끝나면 MATLAB이 돌아올 수있는 방법이 있습니까? 별도의 프로그램에서 호출하는 경우 파일이나 소켓을 사용하여 완료를 확인하는 것보다 프로세스를 기다리는 것이 더 쉬운 것처럼 보입니다.

설명하기 위해, 여기에 샘플 기능 waitHello.m입니다 :

function waitHello 
    disp('Waiting...'); 
    pause(3); %pauses 3 seconds 
    disp('Hello World'); 
    quit; 

그리고 사용하여이 프로그램을 실행하려고 :

matlab -nosplash -nodesktop -r waitHello 

답변

24

빠른 대답 : matlab에 7.1에서

matlab -wait -nosplash -nodesktop -r waitHello 

합니다 (버전 있음) 문서화되지 않은 명령 행 옵션 -wait이 matlab.bat에 있습니다. 귀하의 버전에서 작동하지 않는 경우, 아마 그것을 추가 할 수 있습니다. 여기에 내가 찾은 것이 있습니다. 이 경우 (cmd.exe를을 참조하십시오 "도움말 시작")

start "MATLAB" %START_WAIT% "%MATLAB_BIN_DIR%\%MATLAB_ARCH%\matlab" %MATLAB_ARGS% 

시작 명령의 관련 구문은 다음과 같습니다 : 마지막으로 MATLAB을 실행 하단의 명령 (라인 153)이다

start ["window title"] [/wait] myprogram.exe args ... 

A는 문서화 된 명령 줄 옵션을 모두 가운데, 높은 비트, 나는 (라인 60) 발견 : 그래서

) else if (%opt%) == (-wait) (
    set START_WAIT=/wait 
) else (

- 잠깐 당신만큼 당신도에서 MATLAB을 종료하고 같이하고 싶은 일을해야 지정을하여 스크립트 (그렇지 않으면 대화 형으로 종료 할 수 있습니다).

+2

이 옵션은 리눅스에 존재하지 않습니다. 어떻게 같은 결과를 얻을 수 있었는지 알고 있습니까? – Snickers3192

+0

@ Snickers3192 ['wait'] (https : //en.wikipedia)를 사용하여 유닉스와 동일한'-wait' 플래그에 대해 @ Snickers3192 [내 대답보기] (https://stackoverflow.com/a/4621554/97160) .org/wiki/Wait_ (명령)) 셸 명령) – Amro