running python script in matlab

Hi, I have one python script and i want to execute that in matlab.I tried with system in matlab. s=system('python trail.py 3') while excuting this command i'm getting a error like below. 'python' is not recognized as an internal or external command, operable program or batch file. Please can anybody help me in fixing this error. Thanks in advance
Regards Vasavi

 Respuesta aceptada

Walter Roberson
Walter Roberson el 22 de Jun. de 2012
Either python is not installed in your system or it is not on your MS Windows PATH as known to MATLAB.
Inside MATLAB, command
getenv('PATH')
and see what it shows.
Note: python is not automatically installed as part of MATLAB. perl is, though, installed as part of MATLAB.

7 comentarios

sai vasavi
sai vasavi el 28 de Jun. de 2012
Hello walter, Thanks for your response.I added python path to MS windows PATH.By adding this path that error got clear.Now,when I run the command like s=system("mypython.py"); this command just opening the corresponding python file but it is not executing in matlab. Actually,the requirement is I have created one function in python.I want to pass arguments to that function from matlab and saving the function output in matlab workspace. for illustration i have a function in python like in python environment define squared(x): y=x*x return y In Matlab environment, Squared(3) 9 Please help me in solving this. Regards Vasavi
Walter Roberson
Walter Roberson el 28 de Jun. de 2012
One way of proceeding (I think) would be to use MS Windows facilities to "associate" the .py file extension with the python interpreter.
Another way would be to specify the python interpreter as the command, and use whatever flags python uses in order to indicate that what follows is the name of the script to execute. For example it might look like
s = system('python -f mypython.py');
I am not familiar with python's argument-passing mechanisms; I know some other people around have used python so one of them might know.
sai vasavi
sai vasavi el 2 de Jul. de 2012
Thanks for your comment Walter. I am also new to this python.Please share any information regarding this request if any.I searched in google but i did n't get any solution to solve this.
Thus for example
arg1 = 'C:\TEMP\MyInputFile.txt';
s = system( sprintf('python mypython.py "%s"', arg1) );
sai vasavi
sai vasavi el 10 de Jul. de 2012
Thanks for your response Walter.That issue is resolved.Now I am able to run that python function in matlab and saving the putput in workspace. I developed the code which can do the sam ehow perl functions are executed in matlab environment. Anyhow thanks for your help.
Sameer Khan
Sameer Khan el 15 de Jul. de 2013
Editada: Sameer Khan el 15 de Jul. de 2013
sai vasavi: can you pleasse tell me how to run a mcros file with a .py extension in matlab? i want to get a .rpt file from abaqus simulation automatically for that i prepared a macros file with .py extension. I am new to abaqus and need help. or any other way to get the output values of displacements at a node for all time.?
Jerry Olup
Jerry Olup el 29 de Jul. de 2020
Found that you can get results back from python invoked from matlab by using [s,r] return values for system call where the strings python emits can be captured and parsed. Might be good to use files holding larger amounts of data with names printed for matlab to pick up and read.
A simple test I did was to write a squaring function and pass args:
>> arg1 = "1 2 3 4 5";
>> [s,r] = system(sprintf('python pysqr.py %s', arg1));
>> r
r =
'argument 1: 1
arg: 1 - sqr: 1
argument 2: 2
arg: 2 - sqr: 4
argument 3: 3
arg: 3 - sqr: 9
argument 4: 4
arg: 4 - sqr: 16
argument 5: 5
arg: 5 - sqr: 25
'

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Preguntada:

el 22 de Jun. de 2012

Comentada:

el 29 de Jul. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by