我正在尝试从python启动matlab,然后执行一个非常基本的测试。
def execute_matlab_command(command):
handle = win32com.client.DispatchEx('matlab.application')
handle.visible = True
# By using print I know that the handle is valid here
handle.Execute(command)
execute_matlab_handle("x=32")
代码运行正常,但matlab在调用handle.Execute(command)
之前关闭。我在这里错过了什么,比如open()左右?我见过其他人使用(几乎)相同的代码并说它工作正常,无法解决问题。
编辑:Matlab版本r2012b,python版本2.7
编辑2:我可能发现为什么matlab会关闭。我从内置wxPython的GUI调用DispatchEx,它包含一个mainloop。我尝试使用没有GUI的简单脚本,一切正常。如果有人遇到同样的问题或找到解决方案,我会在这里打开这个问题。
答案 0 :(得分:1)
质量保证Calling MATLAB functions from python表示应该没有问题。这个Matlab page表明您可能必须将Matlab安装配置为接受以这种方式打开。
注意:作为COM服务器对象的'matlab.application'不太可能与您发现的matlab包装器有关;包装器只是一个可执行文件。其中一个matlab库已经注册为matlab.application的COM服务器。
答案 1 :(得分:0)
使用Dispatch
def execute_matlab_command(command):
handle = win32com.client.Dispatch('matlab.application')
handle.visible = True
# By using print I know that the handle is valid here
handle.Execute(command)
我之前没有使用DispatchEx
,但我保证Dispatch
可以使用。