Call python function from Matlab
Thomas Rachel
nutznetz-0c1b6768-bfa9-48d5-a470-7603bd3aa915 at spamschutz.glglgl.de
Wed Jun 8 03:29:50 EDT 2011
Am 08.06.2011 07:12 schrieb nazmul.islam at gmail.com:
> I need to call a python function from a Matlab environment. Is it
> possible?
>
> Let's assume, I have the following python code:
>
> def squared(x):
> y = x * x
> return y
>
> I want to call squared(3) from Matlab workspace/code and get 9.
>
> Thanks for your feedback.
>
> Nazmul
You can write a .mex file which calls Python API functions. These should
be, among others,
init:
Py_Initialize()
for providing callbacks or so:
Py_InitModule()
for running:
PyRun_String()
PyRun_SimpleString()
PyImport_Import()
-> PyObject_GetAttrString()
-> PyCallable_Check()
-> PyObject_CallObject()
etc. etc.
at the end:
Py_Finalize()
For details, have a closer look at the API documentation, e. g.
http://docs.python.org/c-api/veryhigh.html.
Additionally, you have to care about conversion of data types between
the MATLAB and Python types. Here you can look at
http://www.mathworks.com/help/techdoc/apiref/bqoqnz0.html
Alternatively, you can call the python libraries using
http://www.mathworks.com/help/techdoc/ref/f16-35614.html#f16-37149.
HTH,
Thomas
More information about the Python-list
mailing list