Доступ к данным во вложенных структурах

В этом примере показано, как индексировать в структуру, которая вкладывается в другой структуре. Общий синтаксис для доступа к данным в конкретном поле

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

Когда структура является скаляром (1 на 1), вы не должны включать индексы, чтобы обратиться к одному элементу. Например, создайте скалярную структуру s, где поле n вложенная скалярная структура с полями aB, и c:

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

Доступ к третьей строке поля b:

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

Переменный third_row_b содержит третью строку eye(4).

third_row_b =
     0     0     1     0

Расширьте s так, чтобы оба s и n являются нескалярными (1 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';

Структуры теперь содержит данные, показанные в следующем рисунке.

Доступ к части массива в поле b из второго элемента в n в первом элементе s:

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

Это возвращает левый верхний угол 2 на 2 2*eye(4):

part_two_eye =
     2     0
     0     2

Смотрите также

| |

Похожие темы