Main Content

创建元胞数组

元胞数组可以存储不同类型和大小的数据。过去建议用元胞数组处理文本和不同类型的表格数据,如电子表格中的数据。现在建议用 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}

另请参阅

相关主题