How to handle multi Matlab return values in Python
21 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I'm using Matlab 2014b, and I want to call Matlab function from Python(2.7.6). Here is my Python script:
import matlab.engine as meng
import matlab as mat
eng = meng.start_matlab()
try:
x,y = eng.Fun_Py(3,4)
print x
print y
eng.quit()
except:
print "error in python script"
eng.quit()
and here is my Matlab script:
function [x,y]=Fun_Py(a,b) x=zeros(a,b); y=sum(x); end
When I ran the Python scipt, I got "error in python script".How can I solve this problem? Any help is appreciate.
Jason Shih
0 Kommentare
Akzeptierte Antwort
Bo Li
am 1 Jul. 2015
There are two things need to be done.
1. Add the folder where Fun_Py.m is located into MATLAB path from MATLAB command window:
Or you can change the current folder in MATLAB to where Fun_Py.m is located, for example if it is located in c:\temp:
eng.cd(r'C:\temp)
2. Set the number of output to 2 if 2 output is expected:
x,y = eng.Fun_Py(3,4, nargout=2)
3 Kommentare
Petru-Daniel Tudosiu
am 5 Feb. 2017
@Bo Li I tried what you said and it says that the function did not expect that explicit variable. I am using Python 3.4 with Matlab R2016b. Can You please help me?
Bo Li
am 6 Feb. 2017
I need more details maybe sample code to understand "the function did not expect that explicit variable".
A simple MATLAB function that returns multiple output is gcd:
>>> a,b,c=eng.gcd(8,10, nargout=3)
>>> a,b,c
(2L, -1L, 1L)
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Call MATLAB from Python finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!