2013-10-24 32 views
0

我有一個Matlab函數,返回可變數量的結果。在Matlab中我把它以下列方式多輸出與mlabwrap

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

當我使用mlab包裹在Python這個電話我只得到A

>>> result = mlab.func(C) 

模式在Python端的匹配(即[A, B] = mlab.func(C))是可預見的無效。

如何從mlab獲取所有返回的值?是否有一些低級API我錯過了?

回答

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)