Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我在MATLAB帮助( matlab -h )中看到可以使用-r标志指定要运行的m文件。我注意到当我这样做时,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中有未记录的命令行选项-wait。如果它不适用于您的版本,则可以将其添加。这就是我发现的。最终启动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,指定-wait应该可以完成您想要的操作(否则它将等待您以交互方式终止它)。 |
![]() |
![]() |