簡體   English   中英

使用 matlab 引擎將 python 嵌套列表轉換為 matlab-cell

[英]converting python nested-list into matlab-cell using matlab engine

我正在嘗試將 python 嵌套列表轉換為 python 中的 matlab 單元。 我的 python 嵌套列表只包含字符串。

這是我的清單:

x = [['a', 'b'],['d','e']]                                                                                                 

type(x)                                                                                                                    
list

這是我嘗試將其作為 matlab 單元傳遞:

import matlab.engine 
import matlab 
eng = matlab.engine.start_matlab() 
y = eng.cell(x)                                                                                                            
type(y)                                                                                                                    
list

這種方法失敗了,因為 y 的類型仍然是一個列表。

另一個錯誤嘗試:

y = eng.cellstr(x)
Error using cellstr (line 44)
Element 1 is not a string scalar or character array. All elements of cell input must be 
string scalars or character arrays.

任何建議在這里表示贊賞,提前致謝!

這種方法失敗了,因為 y 的類型仍然是一個列表。

這就是 Python 中單元格表示的樣子,但實際上它是 MATLAB 中的單元格。 您可以通過運行cell2mat類的特定於單元格的操作來確認這cell2mat

>>> import matlab.engine 
>>> import matlab

>>> eng = matlab.engine.start_matlab()     
>>> x = [['a', 'b'],['d','e']]
>>> matlab_cell = eng.cell(x)
>>> eng.cell2mat(matlab_cell[0])
'ab'

所以matlab_cell是 MATLAB 的一個單元格:

>>> eng.iscell(matlab_cell)
True

但它在 Python 中顯示為列表:

>>> type(matlab_cell)
<class 'list'>

您可以在此處找到有關引擎執行的隱式轉換的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM