我正在尝试将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
:等特定于细胞的操作来确认这一点
>>> 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'>
您可以在此处找到有关引擎执行的隐式转换的更多信息。