将结构中的数组数组复制到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而不是num5x1

所有解释,正确的任务是

 C1(3,2:6) = num2cell(num(1:5,1).'); %' 

转置.' 似乎没有必要,因为我的R2015a安装本身是维度强制,但我喜欢明确。