OMPC aims to enable reuse of the huge open and free code base of MATLAB® on a free and faster growing Python platform. Running Python and MATLAB® in a single interpreter avoids issues with running two separate applications. Python adds general purpose programming libraries to the convenient syntax of the language of technical computing.Python, OMPC uses PLY and Byteplay, but they are distributed with the source code.ctypes (for Python version < 2.5), for OMPClib: numpy, scipy, matplotlib (pylab) and possibly othersall platforms that support Python, ctypes, numpy, scipy, matplotlib(pylab)OMPC and all examples that are part of OMPC website are licensed under BSD style license

OMPC allows running MATLAB®'s m-files using Python interpreter. OMPC reads m-files and translates them into Python compatible code. Just like in the following exampleOMPC is not an interpreter, it lets Python do the work. This means that if Python gets faster OMPC gets faster too. OMPC translates m-files preserving the structure of the original programs as much as possible. Although OMPC comes with a library that emulates the features of MATLAB's® numerical array of there is nothing that will stop you from running the translated code the way you like it. This means that you could run the OMPC generated code on IronPython, Jython, PyPy or whatever else if you write your own numerical class.

Developers, testers and requests for features







MATLAB® is a registered trademark of The MathWorks, Inc.

"Python" and the Python logos are trademarks or registered trademarks of the Python Software Foundation.

All the magic is made possible by python decorators and introspection. Look at the examples section to see how it is possible to emulate implicit variables like nargin/nargout and other dynamic aspects of the MATLAB® engine that are not available in Python.If you want to understand more about how OMPC works, or you want to contribute in any way to the development look at the developer documentation pages.Contributions are welcome in any form. Anybody can contribute by testing . The development is driven by testing and demand . For library of functions, or toolboxes if you like OMPC project does not use any sophisticated and possibly complicated bug-tracking tool. The reason for not using a common bug-tracking is that the development relies on contributions of non-programmers.