在R2019 a之前,以非交互式/批处理模式运行MATLAB

roejwanj  于 2022-12-27  发布在  Matlab
关注(0)|答案(1)|浏览(141)

从R2019a开始,MATLAB具有以下command line option
-batch "statement"以非交互方式运行指定的语句。
我需要使用R2017a,它是does not have this option,所以我使用-r选项:
-r "statement" MATLAB启动后立即自动运行指定的语句。这有时称为以批处理模式调用MATLAB。运行的文件必须位于MATLAB的启动文件夹中或搜索路径上。不要包括路径名或文件扩展名。请用双引号将语句括起来(“statement”)。要分隔多个语句,请使用分号或逗号。
这样做的问题是:

  1. MATLAB窗口弹出,显示执行的命令。
    1.如果MATLAB脚本中有错误,整个过程就会挂起,我知道的唯一结束过程的方法是从MATLAB内部发出quit,但是如果脚本有错误,那么quit就永远不会到达。
    1.如果无法访问MATLAB许可证服务器,则弹出一个对话框错误,而不是返回退出代码。
    2的解决方案是wrap the body of the script in a "try/catch",但我不知道如何解决R2017a中的其他问题。
    我正在考虑使用MATLAB-Python API,但我必须通过Python 3.4或Python 3.5来完成,这将要求我的项目有一个单独的Python环境。
xmjla07d

xmjla07d1#

您可以使用Matlab Compiler (mcc)将脚本编译为独立的可执行文件。然后您可以调用该可执行文件,而不是启动matlab来运行脚本。此方法可以解决您的问题:
1.如果您在Windows上运行此命令,请使用mcc -e来抑制弹出窗口。
1.应用程序在遇到不可恢复的错误时退出(即“崩溃”)。或者使用适当的try/catch异常处理。
1.您不需要启动Matlab,所以到达许可证服务器不是问题。事实上,如果您安装了X1 E1 F1 X,您甚至不需要安装Matlab来运行独立的可执行文件。

相关问题