在MATLAB中连接单元数组



在Matlab中,您可以通过以下命令连接数组:

a=[];
a=[a,1];

如何用单元格数组做类似的事情?

a={};
a={a,'asd'};
上面的代码继续在单元格中嵌套单元格。我只想把元素附加到单元格数组中。我该如何做到这一点?

如果ab是单元格数组,那么您将它们以与连接其他数组相同的方式连接起来:使用[]:

>> 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}=1a(end+1)={1}


请记住,单元格数组只是一个数组,就像其他数组一样。您可以使用与()相同的工具来操作它们,包括索引。()索引返回与您索引的数组类型相同的数组,因此它返回一个单元格数组,即使您只索引单个元素。几乎MATLAB中的每个值都是一个数组,包括6,它是一个1x1双数组。

{}语法用于创建单元格数组,并提取其内容:a{1}不是单元格数组,它提取数组的第一个元素的内容。

{5, 8, 3}[{5}, {8}, {3}]相同。5是双元数组,{5}是包含双元数组的单元格数组。

a{5} = 0a(5) = {0}相同。

最新更新