创建元胞数组
元胞数组可以存储不同类型和大小的数据。过去建议用元胞数组处理文本和不同类型的表格数据,如电子表格中的数据。现在建议用 字符串," " 数组存储文本数据,用table存储表格数据。而对异构数据,最适合用元胞数组,这种数据最适合在数组中按位置引用。
可使用两种方式创建元胞数组:使用 {} 运算符或使用 cell 函数。
当您将数据放入元胞数组时,请使用元胞数组构造运算符 {}。
C = {1,2,3;
'text',rand(5,10,2),{11; 22; 33}}C=2×3 cell array
{[ 1]} {[ 2]} {[ 3]}
{'text'} {5×10×2 double} {3×1 cell}
与所有 MATLAB® 数组一样,元胞数组也是矩形,每一行中具有相同的元胞数。C 是一个 2×3 元胞数组。
您也可以使用 {} 运算符创建一个空的 0×0 元胞数组。
C2 = {}C2 = 0×0 empty cell array
当您要随时间推移或以循环方式向元胞数组添加值时,请先使用 cell 函数创建一个空数组。这种方法会为元胞数组的头部预分配内存。每个元胞包含一个空数组 []。
C3 = cell(3,4)
C3=3×4 cell array
{0×0 double} {0×0 double} {0×0 double} {0×0 double}
{0×0 double} {0×0 double} {0×0 double} {0×0 double}
{0×0 double} {0×0 double} {0×0 double} {0×0 double}
要对特定元胞进行读取或写入,请将索引括在花括号中。例如,用随机数据数组填充 C3。根据数组在元胞数组中的位置更改数组大小。
for row = 1:3 for col = 1:4 C3{row,col} = rand(row*10,col*10); end end C3
C3=3×4 cell array
{10×10 double} {10×20 double} {10×30 double} {10×40 double}
{20×10 double} {20×20 double} {20×30 double} {20×40 double}
{30×10 double} {30×20 double} {30×30 double} {30×40 double}