ber*_*ala 1 arrays matlab cell-array
在 Matlab 中,您可以通过以下方式连接数组:
a=[];
a=[a,1];
Run Code Online (Sandbox Code Playgroud)
如何对元胞数组做类似的事情?
a={};
a={a,'asd'};
Run Code Online (Sandbox Code Playgroud)
上面的代码继续在单元格内嵌套单元格。我只想将元素附加到元胞数组中。我该如何实现这个目标?
如果a和b是元胞数组,那么您可以像连接其他数组一样连接它们:使用[]:
>> a={1,\'f\'}\na =\n 1\xc3\x972 cell array\n {[1]} {\'f\'}\n\n>> b={\'q\',5}\nb =\n 1\xc3\x972 cell array\n {\'q\'} {[5]}\n\n>> [a,b]\nans =\n 1\xc3\x974 cell array\n {[1]} {\'f\'} {\'q\'} {[5]}\nRun Code Online (Sandbox Code Playgroud)\n您还可以使用函数形式 ,cat在其中您可以选择要沿哪个维度连接:
>> cat(3,a,b)\n 1\xc3\x972\xc3\x972 cell array\nans(:,:,1) = \n {[1]} {\'f\'}\n\nans(:,:,2) = \n {\'q\'} {[5]}\nRun Code Online (Sandbox Code Playgroud)\n要附加单个元素,您可以这样做a=[a,{1}],但这效率不高(请参阅此问答)。相反,执行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}。