在Matlab中,您可以通过以下命令连接数组:
a=[];
a=[a,1];
如何用单元格数组做类似的事情?
a={};
a={a,'asd'};
上面的代码继续在单元格中嵌套单元格。我只想把元素附加到单元格数组中。我该如何做到这一点?如果a
和b
是单元格数组,那么您将它们以与连接其他数组相同的方式连接起来:使用[]
:
>> a={1,'f'}
a =
1×2 cell array
{[1]} {'f'}
>> b={'q',5}
b =
1×2 cell array
{'q'} {[5]}
>> [a,b]
ans =
1×4 cell array
{[1]} {'f'} {'q'} {[5]}
您也可以使用函数形式cat
,您可以在其中选择要连接的维度:
>> cat(3,a,b)
1×2×2 cell array
ans(:,:,1) =
{[1]} {'f'}
ans(:,:,2) =
{'q'} {[5]}
要附加单个元素,您可以执行a=[a,{1}]
,但这不是有效的(参见这个问题& a)。请执行a{end+1}=1
或a(end+1)={1}
。
请记住,单元格数组只是一个数组,就像其他数组一样。您可以使用与()
相同的工具来操作它们,包括索引。()
索引返回与您索引的数组类型相同的数组,因此它返回一个单元格数组,即使您只索引单个元素。几乎MATLAB中的每个值都是一个数组,包括6
,它是一个1x1双数组。
{}
语法用于创建单元格数组,并提取其内容:a{1}
不是单元格数组,它提取数组的第一个元素的内容。
{5, 8, 3}
与[{5}, {8}, {3}]
相同。5
是双元数组,{5}
是包含双元数组的单元格数组。
a{5} = 0
与a(5) = {0}
相同。