将结构中的数组数组复制到Cell Array-Matlab
我有一个包含string和数字的结构。 我可以蛮力将input结构的每个元素复制到我的单元格数组中。 当我尝试使用array-ish语法时,出现“来自非单元格数组对象的单元格内容引用”错误。
这工作:
C1{3,2} = num(1,1); C1{3,3} = num(2,1); C1{3,4} = num(3,1); C1{3,5} = num(4,1); C1{3,6} = num(5,1);
但是这不(为什么?):
C1{3,:} = num2cell(num{:,1});
这个错误是因为你正在索引一个double
数组,就好像你正在引用一个cell
数组(即用{}
而不是()
),这是不允许的。
在引用问题被修复之后,Matlab将会抛出两个输出错误,因为语法C1{3,:}
在分配的左边导致逗号分隔的列表扩展; 使用()
将cell
数组分配给cell
cell
数组。
之后,您将收到一个尺寸不匹配,因为C1(3,:)
是1x6
而不是num
的5x1
。
所有解释,正确的任务是
C1(3,2:6) = num2cell(num(1:5,1).'); %'
转置.'
似乎没有必要,因为我的R2015a安装本身是维度强制,但我喜欢明确。