任务:在Windows 7(所有x64)上使用Python 3.x从Matlab 2013b调用函数。
问题:是否有Python包允许我这样做?
我已经尝试过:
但这些都不适用于上面给出的配置。
非常感谢有关使用Python 3.x的工作配置的任何信息。
如果您需要更详细的信息,请告诉我们。
更新:我目前正在尝试使用Matlab2011b和Pyhton 2.7,因为这些似乎是最常用的版本。现在我被困在以下地方:
python-matlab-bridge 我可以毫无问题地导入模块,但是一旦启动会话,就会弹出一个Matlab命令窗口而不会发生任何其他事情。 Python窗口显示:
Starting MATLAB on ZMQ socket tcp://127.0.0.1:55555
Send 'exit' command to kill the server
............................................................Matlab session timed
out after 60 seconds
MATLAB failed to start
Press any key to continue . . .
每次都会发生这种情况,并且没有给出任何错误。
mlabwrap 我试图安装mlabwrap using this guide。在输入'python setup.py install'时,会弹出一个Matlab命令窗口,但没有任何反应。如果我关闭命令窗口,Python输出显示:
WINDOWS SPECIFIC ISSUE? Unable to remove c:\users\martin\appdata\local\temp\tmp1
y2kdk; please delete it manually
[Error 32] Der Prozess kann nicht auf die Datei zugreifen, da sie von einem ande
ren Prozess verwendet wird: 'c:\\users\\martin\\appdata\\local\\temp\\tmp1y2kdk'
INSTALL ABORT: 'matlab -nodesktop -nosplash -wait -r "fid = fopen(\'c:\\users\\m
artin\\appdata\\local\\temp\\tmp1y2kdk\', \'wt\');fprintf(fid, \'%s%c%s%c%s%c\',
version, 10, matlabroot, 10, computer, 10);fclose(fid); quit"' RETURNED ERROR C
ODE -805306369
PLEASE MAKE SURE matlab IS IN YOUR PATH!
我的%Path%
看起来像这样(只有重要的部分;):
D:\MATLAB\R2011b\bin;C:\Program Files\ZeroMQ 4.0.4\lib;D:\Python27;D:\Python27\scripts;D:\MATLAB\R2011b\runtime\win64;D:\MATLAB\R2011b\extern\lib\win64\microsoft;D:\MATLAB\R2011b\bin\win64
任何帮助在Windows上获得Matlab和Python之间的任何连接都值得赞赏!我真的不明白为什么这一切都不起作用......
Update2:我现在可以安装mlabwrap,但我无法启动它。 当我尝试导入mlabwrap时,Matlab命令窗口会在一分钟后打开并关闭。 Python输出是:
>>> import mlabwrap
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Python27\lib\site-packages\mlabwrap.py", line 645, in <module>
mlab = MlabWrap()
File "D:\Python27\lib\site-packages\mlabwrap.py", line 405, in __init__
self._session = mlabraw.open(os.getenv("MLABRAW_CMD_STR", ""))
mlabraw.error: Unable to start MATLAB(TM) engine
我仔细检查了Matlab的engdemo是否正常工作。
答案 0 :(得分:1)
我现在使用python-matlab-bridge工作了。 我手动将它转换为Python3,并且这些更改已合并到官方仓库中,因此它现在可以开箱即用。
如果您收到错误消息,那么&#39; messenger init&#39;找不到,请确保Lib\site-packages\pymatbridge\matlab
中有PATH
。
如果您有任何问题或其他信息可以随意评论此答案,我会添加它以帮助用户开始使用python-matlab-bridge。