Contenuto principale

Accesso ai dati in strutture annidate

Questo esempio mostra come indicizzare a una struttura annidata all'interno di un'altra struttura. La sintassi generale per accedere ai dati in un campo specifico è

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

Quando una struttura è scalare (1x1), non è necessario includere gli indici per fare riferimento al singolo elemento. Ad esempio, creare una struttura scalare s, dove il campo n è una struttura scalare annidata con campi a, b e c:

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

Accedere alla terza riga del campo b:

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

La variabile third_row_b contiene la terza riga di eye(4).

third_row_b =
     0     0     1     0

Espandere s in modo che sia s che n siano non scalari (1x2):

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 struttura s ora contiene i dati mostrati:

Structure containing nested structures as fields

Accedere alla parte dell'array nel campo b del secondo elemento in n all'interno del primo elemento di s:

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

Questo restituisce l'angolo superiore sinistro 2x2 di 2*eye(4):

part_two_eye =
     2     0
     0     2

Vedi anche

| |

Argomenti