Этот пример показывает, как индексировать в структуру, которая вкладывается в другой структуре. Общий синтаксис для доступа к данным в конкретном поле
structName(index).nestedStructName(index).fieldName(indices)
Когда структура является скаляром (1 на 1), вы не должны включать индексы, чтобы обратиться к одному элементу. Например, создайте скалярную структуру s
, где поле n
является вложенной скалярной структурой с полями a
, b
и 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';
Структура s
теперь содержит данные, показанные в следующей фигуре.
Доступ к части массива в поле 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