使用mlabwrap的多个输出

时间:2013-10-24 23:09:15

标签: python matlab mlabwrap

我有一个Matlab函数,它返回可变数量的结果。在Matlab中我用以下方式调用它

>> [A, B] = func(C);

当我使用mlab在Python中包装此调用时,我只获得A

>>> result = mlab.func(C)

Python端的模式匹配(即[A, B] = mlab.func(C))可以预见无效。

如何从mlab获取所有返回的值?是否有一些我缺少的低级API?

1 个答案:

答案 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)