running python script in matlab

14 vues (au cours des 30 derniers jours)
xu
xu le 7 Sep 2014
Hi, I have one python script and i want to execute that in matlab.I want to run that python function in matlab and saving the putput in workspace. Please can anybody help me in fixing this error. Thanks in advance!
Regards
  1 commentaire
Sumeet Kumar Gupta
Sumeet Kumar Gupta le 18 Avr 2017
Modifié(e) : Sumeet Kumar Gupta le 18 Avr 2017
see this for matlab in python. but the other way is not so easy you can use subprocess module in python to call matlab and return the output.see subprocess doc. or you can do it in a more lazy way with this

Connectez-vous pour commenter.

Réponse acceptée

Geoff Hayes
Geoff Hayes le 7 Sep 2014
Xu - how complicated is your python script? Are there many inputs and several output? An interesting solution from call python function from matlab (1) exists and it involves creating a python m-file (from the MATLAB perl.m, replacing the perl text with python. I tried it, along with their example, and it worked well. Basically it involves just creating a command string and evaluating it with the MATLAB dos or unix commands (depending upon your OS).
Or, instead of creating the python.m file, you can just try with the same with a call to system. See call python function matlab (2) If your python script squares a number (like in the linked example) then you could simply write
commandStr = 'python /Users/myName/pathToScript/sqr.py 2';
[status, commandOut] = system(commandStr);
if status==0
fprintf('squared result is %d\n',str2num(commandOut));
end
In the above, the path to the python script is explicitly defined. If the system call is successful, then status is zero, and we print out the result. Note that since the commandOut is a string, we have to convert it to a number.
For a simple example, this works very well. For a more complicated python script, it might be a little tricker.
  9 commentaires
kartik Sarin
kartik Sarin le 11 Fév 2017
Hallo,
Thanks for the input Geoff. Is there a way to integrate MATLAB with Tensorflow libraries.
Geoff Hayes
Geoff Hayes le 11 Fév 2017
Kartik - I'm not sure how to integrate MATLAB with Tensorflow libraries. Others have posted the same (see https://www.mathworks.com/matlabcentral/answers/314283-how-can-i-use-tensorflow-library-from-matlab-environment) but without any response. Perhaps contact the authors of TensorFlow?

Connectez-vous pour commenter.

Plus de réponses (3)

Sarah Palfreyman
Sarah Palfreyman le 3 Oct 2014
As of MATLAB R2014b there exists bi-directional support for directly interfacing MATLAB and Python.
  4 commentaires
Geoff Hayes
Geoff Hayes le 6 Oct 2014
Thanks, Ken!
Edmondo Minisci
Edmondo Minisci le 28 Août 2020
The interface works quite well, but if I use it in a loop it gets stuck after ~3800 calls ... does any one know why, and if there is a solution for that?

Connectez-vous pour commenter.


Arwel
Arwel le 26 Jan 2017
HI,
I haven't tried this, but one approach I have seen is to embed a Python interpreter in C, and then to call this as a mex file. There are a few examples around (e.g. here http://stackoverflow.com/questions/1700628/embed-python-in-matlab-mex-file-on-os-x).... There are other examples around if you google for them also.
Arwel
  1 commentaire
Ronan Fleming
Ronan Fleming le 12 Avr 2021
https://nl.mathworks.com/help/releases/R2021a/matlab/matlab_external/out-of-process-execution-of-python-functionality.html

Connectez-vous pour commenter.


Andreas Urbán
Andreas Urbán le 28 Mar 2022

Catégories

En savoir plus sur Call Python from MATLAB dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by