Main Content

중첩 구조(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

sn이 모두 비 스칼라(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에 아래 나와 있는 데이터가 포함됩니다.

Structure containing nested structures as fields

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

참고 항목

| |

관련 항목