주요 콘텐츠

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

코드 생성을 위한 구조체 배열 정의하기

필드의 일치성 보장하기

코드를 생성하려면 MATLAB® 구조체로 구성된 배열을 만들 때 배열 요소의 대응되는 필드는 크기, 유형, 실수/복소수 여부가 동일해야 합니다.

구조체 배열을 만든 후에는 coder.varsize (MATLAB Coder)를 사용하여 구조체 필드를 가변 크기로 만들 수 있습니다. Declare Bounded and Unbounded Structure Fields (MATLAB Coder) 항목을 참조하십시오.

repmat를 사용하여 일치하는 필드 속성으로 구조체 배열 정의하기

기존 스칼라 구조체를 복제하고 타일화하는 MATLAB repmat 함수를 사용하여 스칼라 구조체에서 구조체 배열을 만들 수 있습니다.

  1. 코드 생성을 위한 스칼라 구조체 정의하기 항목에 설명된 대로 스칼라 구조체를 만듭니다.

  2. repmat를 호출하여 스칼라 구조체와 배열의 차원을 전달합니다.

  3. 표준 배열 인덱싱 및 구조체 점 표기법을 사용하여 각 구조체에 값을 할당합니다.

예를 들어 다음 코드는 스칼라 구조체로 구성된 1×3 배열 X를 생성합니다. 배열의 각 요소는 두 개의 필드 ab가 있는 구조체 s로 정의됩니다.

...
s.a = 0;
s.b = 0;
X = repmat(s,1,3);
X(1).a = 1;
X(2).a = 2;
X(3).a = 3;
X(1).b = 4;
X(2).b = 5;
X(3).b = 6;
...

struct를 사용하여 구조체 배열 정의하기

struct 함수를 사용하여 구조체 배열을 만들려면 필드 값 인수를 셀형 배열로 지정하십시오. 각 셀형 배열 요소는 대응되는 구조체형 배열 요소의 필드 값입니다. 코드를 생성하려면 구조체의 대응되는 필드는 유형이 동일해야 합니다. 따라서, 필드 값으로 구성된 셀형 배열의 요소는 유형이 동일해야 합니다.

예를 들어 다음 코드는 1×3 구조체형 배열을 생성합니다. 구조체 배열의 각 구조체에서 adouble형이고 bchar형입니다.

s = struct('a', {1 2 3}, 'b', {'a' 'b' 'c'});

결합을 사용하여 구조체 배열 정의하기

작은 구조체 배열을 만들려면 결합 연산자인 대괄호( [ ] )를 사용하여 하나 이상의 구조체를 배열로 결합할 수 있습니다. 행렬 생성, 결합, 확장하기 항목을 참조하십시오. 코드를 생성하려면 결합되는 구조체는 크기, 클래스, 실수/복소수 여부가 동일해야 합니다.

예를 들어 다음 코드는 결합 및 로컬 함수를 사용하여 1×3 구조체형 배열의 요소를 생성합니다.

...
W = [ sab(1,2) sab(2,3) sab(4,5) ];

function s = sab(a,b)
  s.a = a;
  s.b = b;
...

참고 항목

도움말 항목