There are several solutions:
Source: http://stackoverflow.com/questions/2883189/calling-matlab-functions-from-python
http://pymat.sourceforge.net
Last updated: 2003
https://code.google.com/p/pymat2/
Last updated: 2012
http://mlabwrap.sourceforge.net
Last updated: 2009
Unfortunately the package currently has a couple of bugs and doesn't seem to work on the mac at all. I reported a few of them but gave up eventually. Also, be prepared for lots of trickery and a bunch of pretty ugly hacks if you have to go into the source code ;-) If this becomes more mature it could be one of the best options.
https://github.com/ewiger/mlab
last update: 2013
(edit 2014-05-20: it seems those issues have already been fixed in the source so things should be fine with 0.2.4)
http://pymatlab.sourceforge.net
last update: 2014
http://arokem.github.io/python-matlab-bridge
last update: 2014
Bug report for Mlab:
http://stackoverflow.com/questions/20659616/python-mlab-cannot-import-name-find-available-releases
Fixed here:
https://github.com/ewiger/mlab/commit/4bfa59af2a1a996a774c80d7aafc4a390f548669
Source: http://stackoverflow.com/questions/2883189/calling-matlab-functions-from-python
pymat
A low level interface to Matlab using the matlab engine (libeng) for communication (basically a library that comes with matlab). The module has to be compiled and linked with libeng.http://pymat.sourceforge.net
Last updated: 2003
pymat2
A somewhat short lived continuation of the pymat development. Seems to work on windows (including 64bit), linux and mac (with some changes).https://code.google.com/p/pymat2/
Last updated: 2012
mlabwrap
A high level interface that also comes as a module which needs compilation and linking againstlibeng. It exposes Matlab functions to python so you can do fun stuff likemlab.plot(x, y, 'o')http://mlabwrap.sourceforge.net
Last updated: 2009
mlab
A repackaging effort of mlabwrap. Basically it replaces the c++ code that links against 'libeng' in mlabwrap with a python module (matlabpipe) that communicates with matlab through a pipe. The main advantage of this is that it doesn't need compilation of any kind.Unfortunately the package currently has a couple of bugs and doesn't seem to work on the mac at all. I reported a few of them but gave up eventually. Also, be prepared for lots of trickery and a bunch of pretty ugly hacks if you have to go into the source code ;-) If this becomes more mature it could be one of the best options.
https://github.com/ewiger/mlab
last update: 2013
pymatlab
A newer package (2010) that also interacts with Matlab throughlibeng. Unlike the other packages this one loads the engine library through ctypes
thus no compilation required. Its not without flaws but still being
maintained and the (64bit Mac specific) issues I found should be easy
enough to fix.(edit 2014-05-20: it seems those issues have already been fixed in the source so things should be fine with 0.2.4)
http://pymatlab.sourceforge.net
last update: 2014
python-matlab-bridge
Also a newer package that is still actively maintained. Communicates with Matlab through some sort of socket. Unfortunately the exposed functions are a bit limited. I couldn't figure out how to invoke a function that takes structs as parameters. Requires zmq, pyzmq and IPython which are easy enough to install.http://arokem.github.io/python-matlab-bridge
last update: 2014
Bug report for Mlab:
http://stackoverflow.com/questions/20659616/python-mlab-cannot-import-name-find-available-releases
Fixed here:
https://github.com/ewiger/mlab/commit/4bfa59af2a1a996a774c80d7aafc4a390f548669
No comments:
Post a Comment