从命令行运行matlab脚本后如何退出?

lai*_*e9m 3 python matlab

这是我的Python代码

DosCmd = 'matlab -wait -automation -nosplash -r "run \'' + to_run + "'\""
os.system(DosCmd)
curve_file = open('curve/'+str(index)+'.curve','r') 
Run Code Online (Sandbox Code Playgroud)

我在 python 脚本中运行 .m 文件,它工作正常,但执行 .m 文件后,它卡在os.system(DosCmd). 为了让 python 运行以下代码,我必须关闭这个窗口:

在此输入图像描述

由于这部分代码处于循环中,这确实让我感到不安。我在网上发现有人说matlab在执行.m文件后可以自动退出,但我的却没有。有人能告诉我我做错了什么或者我应该做什么吗?谢谢!

Dav*_*nan 5

exit添加对您执行的 MATLAB 代码的调用。

DosCmd = 'matlab -wait -automation -nosplash -r "run \'' + to_run + "', exit\""
Run Code Online (Sandbox Code Playgroud)

请注意,您的引用看起来有点奇怪,但您只需添加, exit到在参数中传递的命令的末尾即可-r

顺便说一句,这样会容易得多,subprocess这样您就可以让我们subprocess为您进行报价。

subprocess.check_call(['matlab', '-wait', '-automation', '-nosplash', 
    '-r', 'run \' + to_run + \', exit'])
Run Code Online (Sandbox Code Playgroud)