关于pymatbridge

1 投票
1 回答
1235 浏览
提问于 2025-04-18 02:34

我正在学习如何从Python脚本执行Matlab代码(.m文件)。所以我安装了pymatbridge,但一直没能成功。我使用的是Ubuntu 12.04,Matlab版本2013和Python 2.7.3。

我按照这个链接 http://arokem.github.io/python-matlab-bridge/ 的说明,粘贴了下面的命令,但出现了一个错误,提示有一个意外的关键字参数'host'。

from pymatbridge import Matlab
mlab=Matlab()
mlab=Matlab(matlab='/usr/local/MATLAB/R2013a/bin/matlab', host='192.168.0.1',port=5151)
Traceback (most recent call last):
File "", line 1, in
TypeError: init() got an unexpected keyword argument 'host'

所以我把命令改成了:

mlab=Matlab(matlab='/usr/local/MATLAB/R2013a/bin/matlab')
mlab.start()

正在通过ZMQ套接字启动MATLAB ipc:///tmp/pymatbridge
发送'exit'命令来关闭服务器
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/dist-packages/pymatbridge/pymatbridge.py", line 135, in start
if (self.is_connected()):
File "/usr/local/lib/python2.7/dist-packages/pymatbridge/pymatbridge.py", line 168, in is_connected
resp = self.socket.recv_string(flags=zmq.NOBLOCK)
File "socket.pyx", line 456, in zmq.core.socket.Socket.getattr (zmq/core/socket.c:4576)
AttributeError: Socket has no such option: 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也不太熟悉。

谢谢,
Gokul.

1 个回答

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

撰写回答