Matlab 立即返回退出代码

Posted

技术标签:

【中文标题】Matlab 立即返回退出代码【英文标题】:Matlab returns exit code immediately 【发布时间】:2014-04-17 10:21:21 【问题描述】:

我正在使用 python 创建各种 matlab .m 文件,然后使用子进程运行它们。文件完成后,我想删除它们:

    command = ['C:\\MatlabR2012b\\bin\\matlab.exe', '-nodesktop', '-nosplash', '-r', 'mfile']
    matlab = subprocess.Popen(command) # launch matlab with m file
    matlab.wait() # wait for matlab to finish before deleting .m file
    print "delete"
    os.remove(self.filename)

问题在于 matlab.wait() 从不等待,因为 matlab 立即返回退出代码 0。有没有其他方法可以检查matlab是否完成?

【问题讨论】:

无关:您可以使用subprocess.check_call(command) 而不是Popen(..).wait()。如果command 以非零状态退出,前者也会引发异常。 【参考方案1】:

在 Windows 上,有 bin\matlab.exebin\win32\matlab.exe(或 bin\win64\matlab.exe)。前者只是后者的包装,几乎立即退出。

您可以直接拨打bin\win32\matlab.exe,也可以在拨打bin\matlab.exe时使用-wait option。

【讨论】:

您先生,是我永远的英雄! :D 我永远也找不到那个。 @Pphoenix:很高兴能帮到你!

以上是关于Matlab 立即返回退出代码的主要内容,如果未能解决你的问题,请参考以下文章

运行自定义可执行文件,QProcess 立即退出,退出代码为 1

Pycharm 调试器立即退出 139 代码

当运行错误代码 139 时,docker 立即退出

Matlab uicontrol 列表框在关闭时返回而不是立即返回

为啥 Matlab 独立应用程序退出并出现错误“TooManyOutputs”?

Flask 学习-68. abort() 退出请求