return more than one variable from matlab to python, using python-matlab-bridge
1 次查看(过去 30 天)
显示 更早的评论
It is easy to return one variable from Matlab using
res = mlab.run_func('path/to/jk.m', {'arg1': 3, 'arg2': 5})
How can I return more than one variable from Matlab. For example, my .m function is as below
function [lol, sos] = jk(args)
arg1 = args.arg1;
arg2 = args.arg2;
lol = arg1 + arg2;
sos = arg1 * arg2;
end
0 个评论
回答(1 个)
Bo Li
2015-2-12
Since R2014b, the MATLAB Engine for Python provides a package for Python to call MATLAB as a computational engine:
Using MATLAB Engine for Python, you can set the nargout to return the number of results:
For your case, it should work using following code:
>>>import matlab.engine
>>>eng = matlab.engine.start_matlab() //launch MATLAB
>>>eng.cd('theFolderofJK', nargout=0) //change to the location to where jk.m resides.
>>>res = eng.jk({'arg1':3, 'arg2': 5}, nargout = 2) //a tuple is returned for more than 1 result
(8L, 15L)
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!