嗯,我爲自己感到驕傲,我正確地安裝了mlabwrap,但是現在我無法使它與matlab單元一起工作。在Python中,列表類似於單元格,所以我想我會輸入一個列表,mlabwrap會將它轉換爲單元格。不幸的是,它似乎並沒有這樣工作。如何使用mlabwrap從python調用帶有單元參數的matlab函數?
例如,我有一個matlab m文件:
function list_test(x)
display(x);
在蟒蛇,如果我鍵入
mlab.list_test([[1,2],[3,4]])
我得到:
x =
1 2
3 4
因此,mlabwrap似乎拿我的兩個嵌套列表,把它們變成一個2x2矩陣,這不是我想要的。
當我嘗試
mlab.list_test([[1,2],[3,4,5]])
然後我得到:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/Ben/.virtualenvs/test/lib/python2.7/site-packages/mlabwrap.py", line 607, in mlab_command
return self._do(name, *args, **update({'nout':nout}, kwargs))
File "/Users/Ben/.virtualenvs/test/lib/python2.7/site-packages/mlabwrap.py", line 534, in _do
mlabraw.put(self._session, argnames[-1], arg)
TypeError: a float is required
顯然沒有骰子。
如果必須,我想我可以編寫一些python代碼將列表轉換爲多個1-D數組,使用mlabwrap將1-D數組提供給matlab,並編寫一些matlab代碼將這些1-D數組轉換爲細胞。但是這很混亂,我想知道是否有更簡單的方法。 mlabwrap能以某種方式爲我做這件事嗎?
以下是我的設置的詳細信息。 OS:山獅子(OS X 10.8), 的Python:2.7, Matlab的:2010年b, mlabwrap:對於單元陣列1.1
有沒有人遇到過同樣的事情?任何想法如何解決它?似乎有一些mlabwrap中的機器用於將matlab中的單元格讀入python,但我不確定是否支持從python讀取列表(單元格)到matlab中。 – Stretch 2013-03-27 02:27:23