matlab.engine function returns only the first output
조회 수: 10 (최근 30일)
이전 댓글 표시
Hello,
For a test, I have written a very simple matlab function that has two outputs:
function [y,z] = mat_func(x)
y = [2.0*x ,2.0*x] ;
z = [3.0*x, 3.0*x] ;
Then I wrote a python script which calls mat_func : [y,z] = eng.mat_func(2.0)
I got an error message "ValueError: need more than 1 value to unpack"
It works when I write: y= eng.mat_func(2.0) , but in this case of course I only get the first output, which is [4.0 4.0].
How can I get both outputs by calling the function from python ?
Thanks for any help !
댓글 수: 0
채택된 답변
Steven Lord
2019년 7월 9일
According to the "Return Multiple Output Arguments from MATLAB Function" section on this documentation page you need to call it with one output and an additional input that specifies the number of outputs you want. So something like this should work, though I haven't tried it myself:
yz = eng.mat_func(2.0, nargout=2)
추가 답변 (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!