중첩 구조(Nested Structure)의 데이터에 액세스
이 예제에서는 다른 구조체 내에 중첩되어 있는 구조체의 요소를 참조하는 방법을 보여줍니다. 특정 필드의 데이터에 액세스하기 위한 일반적인 구문은 다음과 같습니다.
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
와 n
이 모두 비 스칼라(1×2)가 되도록 s
를 확장합니다.
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
에 아래 나와 있는 데이터가 포함됩니다.
s
의 첫 번째 요소 내에 있는 n
의 두 번째 필드 b
배열의 일부에 액세스합니다.
part_two_eye = s(1).n(2).b(1:2,1:2)
2*eye(4)
의 왼쪽 위 2×2 코너가 반환됩니다.
part_two_eye = 2 0 0 2