我怎样才能从返回,直到命令行脚本完成后停止MATLAB?(How can I stop MATLAB

2019-07-18 15:36发布

我看到在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

Answer 1:

快速回答:

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?