2008-08-18 93 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