Main Content

Indexación multinivel para acceder a partes de celdas

En este ejemplo se muestran técnicas para acceder a datos en arreglos almacenados dentro de celdas de arreglos de celdas.

Cree un arreglo de celdas de muestra.

myNum = [1, 2, 3];
myCell = {'one', 'two'};
myStruct.Field1 = ones(3);
myStruct.Field2 = 5*ones(5);

C = {myNum, 100*myNum;
     myCell, myStruct}
C=2×2 cell array
    {[ 1 2 3]}    {[100 200 300]}
    {1x2 cell}    {1x1 struct   }

Acceda al contenido completo de una celda concreta utilizando llaves, {}. Por ejemplo, devuelva un vector numérico desde la celda que lo contiene.

C{1,2}
ans = 1×3

   100   200   300

Acceda a parte del contenido de una celda añadiendo índices, utilizando sintaxis que coincida con el tipo de datos del contenido.

Encierre los índices numéricos entre paréntesis. Por ejemplo, C{1,1} devuelve el vector numérico de 1 por 3 [1 2 3]. Acceda al segundo elemento de ese vector utilizando paréntesis.

C{1,1}(1,2)
ans = 2

Encierre los índices del arreglo de celdas entre llaves. Por ejemplo, C{2,1} devuelve el arreglo de celdas {'one','two'}. Acceda al contenido de la segunda celda dentro de ese arreglo de celdas utilizando llaves.

C{2,1}{1,2}
ans = 
'two'

Haga referencia a los campos de un arreglo struct con notación de puntos e indexe en el arreglo, como se describe para los arreglos numéricos y de celdas. Por ejemplo, C{2,2} devuelve un arreglo de estructura, donde Field2 contiene un arreglo numérico de 5 por 5 de cincos. Acceda al elemento de la quinta fila y primera columna de ese campo utilizando notación de puntos y paréntesis.

C{2,2}.Field2(5,1)
ans = 5

Puede anidar cualquier número arreglos de celdas y de estructura. Por ejemplo, añada celdas y estructuras anidadas a C.

C{2,1}{2,2} = {pi, eps};
C{2,2}.Field3 = struct('NestedField1', rand(3), ...
                       'NestedField2', magic(4), ...
                       'NestedField3', {{'text'; 'more text'}} );

Acceda a partes de los datos nuevos utilizando llaves, paréntesis o notación de puntos.

copy_pi = C{2,1}{2,2}{1,1}
copy_pi = 3.1416
part_magic = C{2,2}.Field3.NestedField2(1:2,1:2)
part_magic = 2×2

    16     2
     5    11

nested_cell = C{2,2}.Field3.NestedField3{2,1}
nested_cell = 
'more text'

Temas relacionados