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

回答(1 个)

Bo Li
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)

类别

Help CenterFile Exchange 中查找有关 Call MATLAB from Python 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by