我正在学习如何从python脚本执行Matlab代码(.m文件)。所以我安装了pymatbridge,但我无法成功。我正在使用Ubuntu 12.04,Matlab版本2013和python 2.7.3。
我已点击链接http://arokem.github.io/python-matlab-bridge/ 并粘贴下面的命令,但得到一个错误说意外的关键字参数'host'。
来自pymatbridge导入Matlab
MLAB = Matlab的()
mlab = Matlab(matlab ='/ usr / local / MATLAB / R2013a / bin / matlab',host ='192.168.0.1',port = 5151)
Traceback(最近一次调用最后一次): 文件“”,第1行,in TypeError: init ()得到一个意外的关键字参数'host'
所以我已将命令更改为
MLAB = Matlab的(MATLAB = '的/ usr /本地/ MATLAB / R2013a / bin中/ MATLAB')
mlab.start()
在ZMQ socket ipc:/// tmp / pymatbridge上启动MATLAB 发送'exit'命令终止服务器
追溯(最近的呼叫最后):
文件“”,第1行,在中 文件“/usr/local/lib/python2.7/dist-packages/pymatbridge/pymatbridge.py”,第135行,开始时
if(self.is_connected()):
文件“/usr/local/lib/python2.7/dist-packages/pymatbridge/pymatbridge.py”,第168行,in_connected
resp = self.socket.recv_string(flags = zmq.NOBLOCK)
在zmq.core.socket.Socket中输入“socket.pyx”,第456行。 getattr (zmq / core / socket.c:4576)
AttributeError:Socket没有这样的选项:RECV_STRING
< M A T L A B (R) > Copyright 1984-2013 The MathWorks, Inc. R2013a (8.1.0.604) 64-bit (glnxa64) February 15, 2013
要开始使用,请键入以下内容之一:helpwin,helpdesk或demo。 有关产品信息,请访问www.mathworks.com。
无效的MEX文件
'/usr/local/lib/python2.7/dist-packages/pymatbridge/matlab/messenger.mexa64': libzmq.so.3:无法打开共享对象文件:没有这样的文件或目录
matlabserver出错(第7行)
messenger('init',socket_address);
请帮助我解决这个问题,因为我是编程新手,也不熟悉ubuntu。
此致 戈库尔。
答案 0 :(得分:2)
出于某种原因,http://arokem.github.io/python-matlab-bridge/上的文档与存储库上的主分支已过时,并且与发布版本0.2相关。这里的文档:https://github.com/arokem/python-matlab-bridge是与当前开发版本相关的文档。
至于你的问题,我认为你需要在你的机器上获得libzmq。在ubuntu上通过在终端执行以下命令来完成:
sudo apt-get install libzmq-dev