当前位置:  开发笔记 > 运维 > 正文

如何在命令行脚本完成之后停止MATLAB的返回?

如何解决《如何在命令行脚本完成之后停止MATLAB的返回?》经验,为你挑选了1个好方法。

我在MATLAB help(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

Brian Jorgen.. 24

快速回答:

matlab -wait -nosplash -nodesktop -r waitHello

在Matlab 7.1(我的版本)中,matlab.bat中有一个未记录的命令行选项-wait.如果它不适用于您的版本,您可以添加它.这是我找到的.最后启动matlab的底部命令是(第153行):

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

在这种情况下,start命令的相关语法(请参阅cmd.exe中的"help start")是:

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

在所有记录的命令行选项中,我发现(第60行):

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

所以指定-wait应该做你想要的,只要你也从你的脚本中退出matlab(否则它将等待你以交互方式终止它).



1> Brian Jorgen..:

快速回答:

matlab -wait -nosplash -nodesktop -r waitHello

在Matlab 7.1(我的版本)中,matlab.bat中有一个未记录的命令行选项-wait.如果它不适用于您的版本,您可以添加它.这是我找到的.最后启动matlab的底部命令是(第153行):

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

在这种情况下,start命令的相关语法(请参阅cmd.exe中的"help start")是:

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

在所有记录的命令行选项中,我发现(第60行):

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

所以指定-wait应该做你想要的,只要你也从你的脚本中退出matlab(否则它将等待你以交互方式终止它).


这个选项不在linux上,你知道我怎么能实现同样的目标吗?
推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有