Main Content

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

필드의 일치성 보장하기

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

구조체 배열을 만든 후에는 coder.varsize (MATLAB Coder)를 사용하여 구조체 필드를 가변 크기로 만들 수 있습니다. Declare Variable-Size 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;
...

참고 항목

관련 항목