创建元胞数组
元胞数组可以存储不同类型和大小的数据。过去建议用元胞数组处理文本和不同类型的表格数据,如电子表格中的数据。现在建议用 string
数组存储文本数据,用table
存储表格数据。而对异构数据,最适合用元胞数组,这种数据最适合在数组中按位置引用。
可使用两种方式创建元胞数组:使用 {}
运算符或使用 cell
函数。
当您将数据放入元胞数组时,请使用元胞数组构造运算符 {}
。
C = {1,2,3;
'text',rand(5,10,2),{11; 22; 33}}
C=2×3 cell array
{[ 1]} {[ 2]} {[ 3]}
{'text'} {5x10x2 double} {3x1 cell}
与所有 MATLAB® 数组一样,元胞数组也是矩形,每一行中具有相同的元胞数。C
是一个 2×3 元胞数组。
您也可以使用 {}
运算符创建一个空的 0×0 元胞数组。
C2 = {}
C2 = 0x0 empty cell array
当您要随时间推移或以循环方式向元胞数组添加值时,请先使用 cell
函数创建一个空数组。这种方法会为元胞数组的头部预分配内存。每个元胞包含一个空数组 []
。
C3 = cell(3,4)
C3=3×4 cell array
{0x0 double} {0x0 double} {0x0 double} {0x0 double}
{0x0 double} {0x0 double} {0x0 double} {0x0 double}
{0x0 double} {0x0 double} {0x0 double} {0x0 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
{10x10 double} {10x20 double} {10x30 double} {10x40 double}
{20x10 double} {20x20 double} {20x30 double} {20x40 double}
{30x10 double} {30x20 double} {30x30 double} {30x40 double}