我看到在MATLAB帮助( matlab -h
),我可以使用-r
标志指定的m
-file运行。 我注意到当我这样做,MATLAB似乎开始脚本,但立即返回。 脚本处理罚款,但主要的应用程序已经返回。
有没有什么办法让一旦命令完成MATLAB只返回? 如果你从一个单独的程序调用它好像它更容易等待的过程,而不是使用文件或插座,以确认完成。
为了说明这一点,这里有一个样本函数waitHello.m
:
function waitHello
disp('Waiting...');
pause(3); %pauses 3 seconds
disp('Hello World');
quit;
我尝试使用这个运行:
matlab -nosplash -nodesktop -r waitHello
快速回答:
matlab -wait -nosplash -nodesktop -r waitHello
在Matlab 7.1(我的版本)有一个无证的命令行选项matlab.bat - 等待。 如果它不为你的版本下工作,你也许可以将它添加。这里是我的发现。 在底部终于启动MATLAB中的命令是(线153):
start "MATLAB" %START_WAIT% "%MATLAB_BIN_DIR%\%MATLAB_ARCH%\matlab" %MATLAB_ARGS%
启动命令的语法有关(见cmd.exe的“帮助启动”)在这种情况下:
start ["window title"] [/wait] myprogram.exe args ...
高一点,在所有的记录命令行选项,我发现(线60):
) else if (%opt%) == (-wait) (
set START_WAIT=/wait
) else (
所以指定 - 等待应该做你想要什么,只要你还从你的脚本退出MATLAB的(否则它会等待您以交互方式终止它)。
文章来源: How can I stop MATLAB from returning until after a command-line script completes?