0

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

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

当我用mlabPython 包装这个调用时,我只得到A

>>> result = mlab.func(C)

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

如何从中获取所有返回值mlab?我缺少一些较低级别的 API 吗?

4

1 回答 1

0

您可以阅读本教程https://pypi.python.org/pypi/mlab。在参数部分添加nout字段后,可以得到多个结果。

mlab.svd(数组([[1,2], [1,3]]))

数组([[3.86432845],[0.25877718]])

请注意,我们只得到了“U”——这是因为 python 没有像 Matlab 的多值返回那样的东西。由于 Matlab 函数可能具有完全不同的行为,具体取决于请求的输出参数的数量,因此您必须明确指定是否需要超过 1 个。因此,要获得“U”以及“S”和“V”,您可以这样做:

U, S, V = mlab.svd([[1,2],[1,3]],nout=3)

于 2013-11-18T17:21:05.533 回答