How to handle multi Matlab return values in Python
조회 수: 43 (최근 30일)
이전 댓글 표시
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
채택된 답변
Bo Li
2015년 7월 1일
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
Petru-Daniel Tudosiu
2017년 2월 5일
@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
2017년 2월 6일
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)
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Call MATLAB from Python에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!