I have a bunch of MATLAB code from my MS thesis which I now want to convert to Python (using numpy/scipy and matplotlib) and distribute as open-source. I know the similarity between MATLAB and Python scientific libraries, and converting them manually will be not more than a fortnight (provided that I work towards it every day for some time). I was wondering if there was already any tool available which can do the conversion.
-
9another possibility is to release your source code as is, and test it in Octave (www.gnu.org/software/octave) which has 99% matlab competability.oz123– oz1232012-03-26 05:22:17 +00:00Commented Mar 26, 2012 at 5:22
-
6@josliber: Can we move this question to softwarerecs.stackexchange.com so that it can be reopened?Anderson Green– Anderson Green2016-08-07 19:54:28 +00:00Commented Aug 7, 2016 at 19:54
-
@andersongreen the question is too old for migrationjosliber– josliber2016-08-07 20:20:53 +00:00Commented Aug 7, 2016 at 20:20
-
2I think now the best way to do this is to use matlab built-in tool mcczxch3n– zxch3n2018-11-14 13:45:50 +00:00Commented Nov 14, 2018 at 13:45
2 Answers
There are several tools for converting Matlab to Python code.
The only one that's seen recent activity (last commit from June 2018) is Small Matlab to Python compiler (also developed here: SMOP@chiselapp).
Other options include:
- LiberMate: translate from Matlab to Python and SciPy (Requires Python 2, last update 4 years ago).
- OMPC: Matlab to Python (a bit outdated).
- Mat2py: Matlab to Python (Requires Python 2).
Also, for those interested in an interface between the two languages and not conversion:
pymatlab: communicate from Python by sending data to the MATLAB workspace, operating on them with scripts and pulling back the resulting data.- Python-Matlab wormholes: both directions of interaction supported.
- Python-Matlab bridge: use Matlab from within Python, offers matlab_magic for iPython, to execute normal matlab code from within ipython.
- PyMat: Control Matlab session from Python.
pymat2: continuation of the seemingly abandoned PyMat.mlabwrap, mlabwrap-purepy: make Matlab look like Python library (based on PyMat).oct2py(repository): run GNU Octave commands from within Python.pymex: Embeds the Python Interpreter in Matlab, also on File Exchange.matpy: Access MATLAB in various ways: create variables, access .mat files, direct interface to MATLAB engine (requires MATLAB be installed).- MatPy: Python package for numerical linear algebra and plotting with a MatLab-like interface.
Btw might be helpful to look here for other migration tips:
On a different note, for people who might find it useful there is:
4 Comments
There's also oct2py which can call .m files within python
https://pypi.python.org/pypi/oct2py
It requires GNU Octave, which is highly compatible with MATLAB.