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

 Accepted Answer

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 Comments

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
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.
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) );
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 on 15 Jul 2013
Edited: Sameer Khan on 15 Jul 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.?
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
'

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!