2008-08-18 33 views
20

我在MATLAB幫助(matlab -h)中看到,我可以使用-r標誌來指定要運行的m文件。我注意到當我這樣做時,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 -wait -nosplash -nodesktop -r waitHello 

在Matlab的7.1(該版本我有)有一個未公開的命令行選項-wait在matlab.bat。如果它不適合你的版本,你可以添加它。這是我發現的。在底部終於推出MATLAB的命令是(行153):(輸入cmd.exe請參閱「幫助啓動」)在這種情況下

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

啓動命令的相關語法:

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

高一點,在所有的記錄命令行選項,我發現(60行):

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

所以指定 - 等待應該做你想要什麼,只要你還從離開你的MATLAB腳本(否則它會wa它會讓你以交互方式終止它)。

+2

這個選項在linux上不存在,你知道我怎麼能實現這個嗎? – Snickers3192 2015-09-10 15:39:30

相關問題