- table 的每一列具有固定的数据类型。如果要让表的所有单元格都可以任意填充,就得让每一列都是 cell 类型,这样表中每个单元格都是“一个元胞”。
- 创建时可以先构造一个 空 cell 数组(大小为行数×列数),再用
cell2table
转成 table。 - 填充值时,用大括号
{}
为“元胞内容”赋值,例如data2{row,col} = {某数据}
。
这样就可以在一开始就得到一个“所有位置都能任意放东西(因为都是元胞)”的 table 了。
生成一个3行5列的table,命名为data2,行命名为rowNames,列命名为varNames,
varNames = {'block1','block2','block3','block4','block5'};
rowNames = {'a1','a2','a3'};
% 3) 用 cell2table 将这个空元胞数组转为 table
data2 = cell2table(cell(size(rowNames,2), size(varNames,2)),...
'RowNames', rowNames,...'VariableNames', varNames);
此时,data2
中的每个单元格都是“空元胞”(即 {[]}
),你可以随时往其中塞任意内容。
data2 = {data1};
注意,这里的 data2{r,c} = { ... }
里多了一层花括号,是因为我们要给“cell 列”中的某一个元胞赋值,而元胞的内容本身可以是表、数值、字符串、元胞等任意类型。