我有一个Matlab函数,它返回可变数量的结果。在Matlab中我用以下方式调用它
>> [A, B] = func(C);
当我使用mlab
在Python中包装此调用时,我只获得A
>>> result = mlab.func(C)
Python端的模式匹配(即[A, B] = mlab.func(C)
)可以预见无效。
如何从mlab
获取所有返回的值?是否有一些我缺少的低级API?
答案 0 :(得分:0)
您可以阅读本教程https://pypi.python.org/pypi/mlab。 在参数部分中添加nout字段后,您可以获得多个结果。
mlab.svd(array([[1,2],[1,3]]))
array([[3.86432845], [0.25877718]])
请注意,我们只有'U'回来 - 那是因为python没有得到什么 喜欢Matlab的多重价值回报。由于Matlab函数可以有 完全不同的行为取决于输出参数的数量 请求,如果你想要超过1,你必须明确指定。所以得到 你做的'你'和'S'和'V':
U,S,V = mlab.svd([[1,2],[1,3]],nout = 3)