Main Content

Añadir o eliminar celdas de un arreglo de celdas

Los arreglos de celdas siguen las mismas reglas básicas para la expansión, concatenación y eliminación que otros tipos de arreglos de MATLAB®. Sin embargo, puede indexar en un arreglo de celdas de dos formas: con llaves {} para acceder al contenido de la celda o con paréntesis () para hacer referencia a las celdas en sí. Tenga en cuenta esta distinción cuando añada, elimine o combine celdas en un arreglo de celdas.

Añadir celdas

Una forma común de expandir un arreglo de celdas es concatenar los arreglos de celdas de forma vertical u horizontal. Utilice el operador de concatenación estándar, el corchete []. Separe los elementos con punto y coma para la concatenación vertical o con comas para la concatenación horizontal.

C1 = {'one',2};
C2 = {ones(3,3),'four'};

C = [C1; C2]
C=2×2 cell array
    {'one'     }    {[   2]}
    {3x3 double}    {'four'}

C_horz = [C1,C2]
C_horz=1×4 cell array
    {'one'}    {[2]}    {3x3 double}    {'four'}

Al concatenar un arreglo de celdas y un arreglo sin celdas, se encierra el arreglo sin celdas en una única celda. De esta forma, el arreglo de celdas debe ser un vector.

A = [1 2 3; 4 5 6];
C3 = [C1,A]
C3=1×3 cell array
    {'one'}    {[2]}    {2x3 double}

Para crear celdas independientes del arreglo sin celdas, puede usar num2cell.

C4 = [C,num2cell(A)]
C4=2×5 cell array
    {'one'     }    {[   2]}    {[1]}    {[2]}    {[3]}
    {3x3 double}    {'four'}    {[4]}    {[5]}    {[6]}

Los arreglos de celdas también admiten la expansión escalar. Esto quiere decir que si asigna valores al contenido de las celdas fuera del arreglo existente, el arreglo se expande para incluirlos. El arreglo expandido es rectangular y las celdas que intervienen contienen arreglos numéricos vacíos. Cuando asigne el contenido de una celda, utilice llaves.

C{3,3} = 9
C=3×3 cell array
    {'one'     }    {[       2]}    {0x0 double}
    {3x3 double}    {'four'    }    {0x0 double}
    {0x0 double}    {0x0 double}    {[       9]}

C{end,end+1} = []
C=3×4 cell array
    {'one'     }    {[       2]}    {0x0 double}    {0x0 double}
    {3x3 double}    {'four'    }    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}    {[       9]}    {0x0 double}

Para sustituir el contenido de las celdas, defina un arreglo de celdas usando llaves y asígnelo a un conjunto de celdas que tenga un tamaño equivalente usando paréntesis.

C(3,:) = {'replacement', rand(2,2), 42, 'row'}
C=3×4 cell array
    {'one'        }    {[       2]}    {0x0 double}    {0x0 double}
    {3x3 double   }    {'four'    }    {0x0 double}    {0x0 double}
    {'replacement'}    {2x2 double}    {[      42]}    {'row'     }

Eliminar celdas

La sintaxis para eliminar filas o columnas de un arreglo de celdas es coherente con la de otros arreglos de MATLAB. Establezca las celdas igual a un par de corchetes vacíos. Por ejemplo, elimine la segunda fila de C.

C(2,:) = []
C=2×4 cell array
    {'one'        }    {[       2]}    {0x0 double}    {0x0 double}
    {'replacement'}    {2x2 double}    {[      42]}    {'row'     }

Al encerrar los índices entre llaves, se sustituye el contenido de una celda por un arreglo vacío.

C{1,1} = []
C=2×4 cell array
    {0x0 double   }    {[       2]}    {0x0 double}    {0x0 double}
    {'replacement'}    {2x2 double}    {[      42]}    {'row'     }

Combinar celdas

Las celdas pueden contener datos de cualquier tipo o tamaño, así que para combinarlas o extraer datos de varias celdas a la vez es necesario que los datos sean compatibles. Para ver detalles y ejemplos, consulte Acceder a datos en arreglos de celdas.

Temas relacionados