return more than one variable from matlab to python, using python-matlab-bridge
3 ビュー (過去 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!