我知道这是一个老问题,已经得到了回答。但我在寻找同样的东西(Mac),发现有很多选择,有不同的方法与matlab交互和不同的成熟度。我发现了:
皮马特
使用Matlab引擎(libeng)与Matlab进行通信的低级接口(基本上是Matlab附带的库)。该模块必须编译并与libeng链接。
侏儒
皮马特发展的短暂延续。似乎可以在windows(包括64位)、linux和mac上工作(有一些变化)。
mlabwrap软件
一个高级接口,也作为一个需要编译和链接的模块提供给libeng。它向python公开了Matlab函数,因此您可以做一些有趣的事情,比如
mlab.plot(x, y, 'o')
mlab公司
mlabwrap的重新打包工作。基本上,它用一个python模块(matlabpipe)替换了在mlabwrap中链接到“libeng”的c++代码,该模块通过管道与matlab通信。它的主要优点是不需要任何编译。
不幸的是,这个软件包目前有几个漏洞,似乎根本不适用于mac电脑。我报告了其中一些,但最终还是放弃了。另外,如果你不得不进入源代码,你要准备好面对很多诡计和一堆丑陋的黑客;如果这变得更加成熟,这可能是最好的选择之一。
pymatlab公司
一个新的包(2010),也可以通过libeng与Matlab交互。与其他包不同,这个包通过ctypes加载引擎库,因此不需要编译。它并非没有缺陷,但仍在维护,我发现的(64位Mac特定)问题应该很容易修复。
(编辑2014-05-20:这些问题似乎已经在源代码中得到了解决,因此使用0.2.4应该没问题)
python-matlab桥
同时也是一个更新的包,仍在积极维护中。通过某种套接字与Matlab通信。不幸的是,公开的函数有点有限。我不知道如何调用以结构作为参数的函数。需要zmq、pyzmq和IPython,它们很容易安装。