将结构中的数字数组复制到Cell Array - Matlab

时间:2016-04-04 03:14:55

标签: arrays excel matlab

我有一个包含字符串和数字的结构。我可以强行将输入结构的每个元素复制到我的单元格数组中。当我尝试使用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});

1 个答案:

答案 0 :(得分:0)

引发错误的原因是您要为cell数组编制索引,就好像要取消引用{}数组(即使用()而不是C1{3,:})一样不被允许。

在修复了引用问题之后,Matlab将抛出两个输出错误,因为语法()导致分配左侧的comma-separated list扩展;使用cellcell数组分配给C1(3,:)数组。

之后,您会收到尺寸不匹配,因为1x6 5x1不是num的{​​{1}}。

如上所述,正确的分配是

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

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