i have some python code(some functions) and i want to implement this in bigger matlab program!how can i do this?any help will be useful....
-
3hmm seems to be a duplicate http://stackoverflow.com/questions/1707780/call-python-function-from-matlab – Eli Bendersky Mar 24 '10 at 17:38
-
2You might consider translating your Python functions into Matlab and avoid inter-language issues. Do some rough cost-benefit analysis and decide. – High Performance Mark Mar 24 '10 at 18:48
4 Answers
You should probably avoid this. Use one or the other - preferably Python. But if you have to use both, you could try this:
http://github.com/kw/pymex (scroll down for the readme)
Disclaimer: I wrote this. It may be somewhat difficult to get it to compile and work, particularly if you're on Windows (there is a pre-compiled win32 binary in the downloads area that might work). I don't have access to a lot of different machines with Matlab on them, so I haven't got that nailed down yet.

- 23,127
- 2
- 43
- 62
-
Thanks for releasing this code. I am trying to call cython functions from Matlab and had no idea how to start. – Paul Feb 14 '11 at 19:28
You can use the system command to execute the Python code externally. To link it in more "natively" I think you'll have to go through C. That is, embed your Python code in C code and then expose it with a DLL to Matlab.
P.S. On windows you can also expose Python code to Matlab via COM

- 263,248
- 89
- 350
- 412
-
@sasha: component object model: http://en.wikipedia.org/wiki/Component_Object_Model – Eli Bendersky Mar 24 '10 at 18:26
The only thing I know of is pythoncall but it is a little out of date and I'm not sure it will work reliably with recent versions of matlab.
http://www.elisanet.fi/ptvirtan/software/pythoncall/index.html
Otherwise you would have to interact with matlab through the shell (a bit of a pain I know). If you are dealing with large amounts of data and are on an OS where you can easily create a ramdisk saving matlab files to a ramdisk and passing the filename would be one way to get data from matlab to python without too much of a performance penalty.

- 10,826
- 3
- 35
- 48