我知道这是一个老问题,并且已经得到解答。但我一直在寻找相同的东西(对于 Mac),发现有很多选项可以与 matlab 交互的不同方法和不同的成熟度级别。这是我发现的:
pymat
使用 matlab 引擎 (libeng) 进行通信的 Matlab 低级接口(基本上是 matlab 附带的库)。该模块必须编译并与 libeng 链接。
http://pymat.sourceforge.net
最后更新时间:2003 年
pymat2
pymat 开发的短暂延续。似乎适用于 windows(包括 64 位)、linux 和 mac(有一些变化)。
https://code.google.com/p/pymat2/
最后更新时间:2012 年
mlabwrap
一个高级接口,也作为模块提供,需要针对libeng 进行编译和链接。它将 Matlab 函数暴露给 python,所以你可以做一些有趣的事情,比如
mlab.plot(x, y, 'o')
http://mlabwrap.sourceforge.net
最后更新时间:2009 年
mlab
mlabwrap 的重新打包工作。基本上,它用通过管道与 matlab 通信的 python 模块 (matlabpipe) 替换了与 mlabwrap 中的“libeng”链接的 c++ 代码。这样做的主要优点是它不需要任何类型的编译。
不幸的是,该软件包目前有几个错误,似乎根本无法在 mac 上运行。我报告了其中一些,但最终放弃了。此外,如果您必须进入源代码,请准备好应对大量诡计和一堆非常丑陋的黑客攻击;-) 如果这变得更加成熟,它可能是最好的选择之一。
https://github.com/ewiger/mlab
最后更新:2013 年
pymatlab
一个较新的包 (2010),它也通过 libeng 与 Matlab 交互。与其他包不同,这个包通过ctypes 加载引擎库,因此不需要编译。它并非没有缺陷,但仍在维护中,我发现的(64 位 Mac 特定)问题应该很容易修复。
(edit 2014-05-20:这些问题似乎已经在源代码中得到修复,所以 0.2.4 应该没问题)
http://pymatlab.sourceforge.net
最后更新:2014 年
python-matlab-bridge
也是一个仍在积极维护的更新包。通过某种套接字与 Matlab 通信。不幸的是,暴露的功能有点有限。我不知道如何调用将结构作为参数的函数。需要很容易安装的 zmq、pyzmq 和 IPython。
http://arokem.github.io/python-matlab-bridge
最后更新:2014 年