Main Content

Acceder a datos en estructuras anidadas

En este ejemplo se muestra cómo indexar en una estructura anidada dentro de otra estructura. La sintaxis general para acceder a los datos de un campo concreto es

structName(index).nestedStructName(index).fieldName(indices)

Cuando una estructura es escalar (1 por 1), no es necesario incluir los índices para referirse al único elemento. Por ejemplo, cree una estructura escalar s, en la que el campo n sea una estructura escalar anidada con los campos a, b y c:

s.n.a = ones(3);
s.n.b = eye(4);
s.n.c = magic(5);

Acceda a la tercera fila del campo b:

third_row_b = s.n.b(3,:)

La variable third_row_b contiene la tercera fila de eye(4).

third_row_b =
     0     0     1     0

Amplíe s para que tanto s como n sean no escalares (1 por 2):

s(1).n(2).a = 2*ones(3);
s(1).n(2).b = 2*eye(4);
s(1).n(2).c = 2*magic(5);

s(2).n(1).a = '1a';
s(2).n(2).a = '2a';
s(2).n(1).b = '1b';
s(2).n(2).b = '2b';
s(2).n(1).c = '1c';
s(2).n(2).c = '2c';

La estructura s ahora contiene los datos que se muestran:

Structure containing nested structures as fields

Acceda a parte del arreglo en el campo b del segundo elemento de n dentro del primer elemento de s:

part_two_eye = s(1).n(2).b(1:2,1:2)

Esto devuelve la esquina superior izquierda de 2 por 2 de 2*eye(4):

part_two_eye =
     2     0
     0     2

Consulte también

| |

Temas relacionados