【问题标题】:How to open a single Matlab instance using win32com?如何使用 win32com 打开单个 Matlab 实例?
【发布时间】:2015-10-23 15:05:25
【问题描述】:

我在 python 中使用 Matlab 的 COM 接口,如下所示:

import win32com.client
mlab = win32com.client.Dispatch('matlab.application')
mlab.visible = True
print(mlab.Execute("1 + 1"))

当我运行上面的代码时,它会正确打印 ans = 2 但 Matlab(命令行窗口)在执行代码后退出。我只想打开一个 Matlab 实例并向其发送命令,而不是每次都启动一个新的 Matlab 会话。有没有办法做到这一点?作为记录,我在 Windows 上使用 Python 3.4.3 和 Matlab R2014A。

【问题讨论】:

    标签: python matlab win32com


    【解决方案1】:

    这是退出matlab的mlab的析构函数。保留此变量,您的 matlab 会话将保持打开状态。

    我建议只调度一次并在任何需要的地方使用这个 com 实例,这样垃圾收集器就会完全按照你的意愿行事,一旦你不再使用它就关闭 matlab。

    【讨论】:

    • 嗨@Daniel。感谢您的回答。不幸的是,恐怕我不太听从你的建议。你能详细说明一下吗? (也许明确显示我应该如何修改我的问题中的代码)。谢谢!
    • 您必须将变量mlab 保存在某处。一旦你删除它,get 后面的对象就会被破坏,matlab 也会退出。
    猜你喜欢
    • 2020-10-22
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多