Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

구조체형 배열의 데이터에 액세스하기

이 예제에서는 구조체형 배열의 내용에 액세스하는 방법을 보여줍니다. 이 예제의 코드를 실행하기 위해 여러 개의 변수를 S라는 구조체에 불러옵니다.

스칼라 구조체의 데이터에 액세스하기

먼저 flujet.mat의 데이터를 스칼라 구조체 S로 불러옵니다. 파일 flujet.mat에는 난기류를 동반한 천체물리학적 제트 현상의 이미지가 포함되어 있습니다.

S = load('flujet.mat')
S = struct with fields:
          X: [400x300 double]
        map: [64x3 double]
    caption: [2x32 char]

파일의 변수(X, caption, map)가 이제 구조체의 필드가 됩니다.

structName.fieldName 형식의 점 표기법을 사용하여 데이터에 액세스합니다. 예를 들어, 필드 X의 숫자형 데이터를 image 함수로 전달해 보겠습니다.

image(S.X)
colormap(S.map)

필드의 부분에 액세스하기 위해 필드의 데이터 크기와 데이터형에 적합하게 인덱스를 추가합니다. 예를 들어, X의 왼쪽 중앙 섹션을 image 함수에 전달해 보겠습니다.

centerLeft = S.X(150:250,1:50);
image(centerLeft)

필드에 셀형 배열이 포함되어 있으면 중괄호를 사용하여 데이터에 액세스합니다(예: S.cellField{1:50,1:80}).

구조체형 배열의 요소를 참조하여 데이터에 액세스하기

파일 cape.mat의 데이터를 배열 S의 두 번째 요소에 불러와서 비 스칼라 배열을 생성합니다. 파일 cape.mat에는 매사추세츠주 케이프 코드의 이미지가 포함되어 있습니다.

구조체형 배열의 요소는 각각 동일한 필드를 가져야 합니다. flujet.matcape.mat 모두에 변수 X, mapcaption이 포함되어 있습니다. S는 1x2 배열입니다.

S(2) = load('cape.mat')
S=1×2 struct array with fields:
    X
    map
    caption

비 스칼라 구조체의 경우 필드에 액세스하기 위한 구문은 structName(indices).fieldName입니다. 2S에 대한 인덱스로 지정하여 케이프 코드의 이미지를 표시합니다.

image(S(2).X)
colormap(S(2).map)

인덱스를 추가하여 S(2).X의 작은 섹션을 선택하고 표시합니다.

capeSection = S(2).X(200:300,150:250);
image(capeSection)

참고

구조체형 배열의 단일 요소를 참조할 때만 필드 일부분의 요소를 참조할 수 있습니다. MATLAB®은 구조체의 여러 요소에서 필드의 요소를 참조하려고 하는 S(1:2).X(1:50,1:80)과 같은 명령문은 지원하지 않습니다.

관련 항목