Main Content

Acceder a datos en arreglos de celdas

En este ejemplo se muestra cómo leer y escribir datos desde y a un arreglo de celdas.

Cree un arreglo de celdas de 2 por 3 de datos de texto y numéricos.

C = {'one', 'two', 'three'; 
     1, 2, 3}
C=2×3 cell array
    {'one'}    {'two'}    {'three'}
    {[  1]}    {[  2]}    {[    3]}

Hay dos formas de hacer referencia a los elementos de un arreglo de celdas. Ponga los índices entre paréntesis, (), para hacer referencia a conjuntos de celdas; por ejemplo, para definir un subconjunto del arreglo. Ponga los índices entre llaves, {}, para hacer referencia al texto, los números u otros datos de celdas concretas.

Indexar las celdas con paréntesis, ()

Los índices de arreglo de celdas entre paréntesis hacen referencia a conjuntos de celdas. Por ejemplo, para crear un arreglo de celdas de 2 por 2 que sea un subconjunto de C, utilice paréntesis.

upperLeft = C(1:2,1:2)
upperLeft=2×2 cell array
    {'one'}    {'two'}
    {[  1]}    {[  2]}

Actualice conjuntos de celdas reemplazándolas con la misma cantidad de celdas. Por ejemplo, reemplace las celdas de la primera línea de C por un arreglo de celdas de tamaño equivalente (1 por 3).

C(1,1:3) = {'first','second','third'}
C=2×3 cell array
    {'first'}    {'second'}    {'third'}
    {[    1]}    {[     2]}    {[    3]}

Si las celdas del arreglo contienen datos numéricos, puede convertir las celdas a un arreglo numérico empleando la función cell2mat.

numericCells = C(2,1:3)
numericCells=1×3 cell array
    {[1]}    {[2]}    {[3]}

numericVector = cell2mat(numericCells)
numericVector = 1×3

     1     2     3

numericCells es un arreglo de celdas de 1 por 3, pero numericVector es un arreglo de 1 por 3 de tipo double.

Indexar el contenido con llaves, {}

Acceda al contenido de las celdas —los números, texto u otros datos de las celdas— indexando con llaves. Por ejemplo, para acceder al contenido de la última celda de C, use llaves.

last = C{2,3}
last = 3

last es una variable numérica de tipo double, porque la celda contiene un valor double.

Del mismo modo, puede indexar con llaves para reemplazar el contenido de una celda.

C{2,3} = 300
C=2×3 cell array
    {'first'}    {'second'}    {'third'}
    {[    1]}    {[     2]}    {[  300]}

Puede acceder al contenido de varias celdas indexando con llaves. MATLAB® devuelve el contenido de las celdas como lista separada por comas. Como cada celda puede contener un tipo de datos diferente, no puede asignar esta lista a una sola variable. Sin embargo, puede asignar la lista al mismo número de variables como celdas. MATLAB® realiza asignaciones a las variables siguiendo el orden de la columna.

Asigne contenido de cuatro celdas de C a cuatro variables.

[r1c1, r2c1, r1c2, r2c2] = C{1:2,1:2}
r1c1 = 
'first'
r2c1 = 1
r1c2 = 
'second'
r2c2 = 2

Si cada celda contiene el mismo tipo de datos, puede crear una sola variable aplicando el operador de concatenación de arreglos, [], a la lista separada por comas.

Concatene el contenido de la segunda fila a un arreglo numérico.

nums = [C{2,:}]
nums = 1×3

     1     2   300

Consulte también

|

Temas relacionados