Main Content

Crear un arreglo de celdas

Un arreglo de celdas puede almacenar datos de distintos tipos y tamaños. Antes, los arreglos de celdas se recomendaban para texto y datos tabulares de distintos tipos, como datos de hojas de cálculo. Ahora, puede almacenar datos de texto con un arreglo string y datos tabulares con un table. Utilice arreglos de celdas para datos heterogéneos a los que es mejor hacer referencia por su ubicación dentro de un arreglo.

Puede crear un arreglo de celdas de dos formas: con el operador {} o la función cell.

Cuando tenga datos que agregar en un arreglo de celdas, utilice el operador de construcción de arreglos de celdas {}.

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}

Como todos los arreglos de MATLAB®, los arreglos de celdas son rectangulares, con el mismo número de celdas en cada fila. C es un arreglo de celdas de 2 por 3.

También puede utilizar el operador {} para crear un arreglo de celdas de 0 por 0 vacío.

C2 = {}
C2 =

  0x0 empty cell array

Cuando desee agregar valores a un arreglo de celdas a lo largo del tiempo o en un bucle, primero debe crear un arreglo vacío con la función cell. Así se preasigna memoria para el encabezado del arreglo de celdas. Cada celda contiene un arreglo vacío [].

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}

Para leer de o escribir en celdas determinadas, ponga los índices entre llaves. Por ejemplo, rellene C3 con arreglos de datos aleatorios. Cambie el tamaño de los arreglos en función de su ubicación en el arreglo de celdas.

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}

Consulte también

Temas relacionados