이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
코드 생성을 위한 구조체 배열 정의하기
필드의 일치성 보장하기
코드를 생성하려면 MATLAB® 구조체로 구성된 배열을 만들 때 배열 요소의 대응되는 필드는 크기, 유형 및 복잡도가 동일해야 합니다.
구조체 배열을 만든 후에는 coder.varsize
(MATLAB Coder)를 사용하여 구조체 필드를 가변 크기로 만들 수 있습니다. Declare Variable-Size Structure Fields (MATLAB Coder) 항목을 참조하십시오.
repmat
를 사용하여 일치하는 필드 속성으로 구조체 배열 정의하기
기존 스칼라 구조체를 복제하고 타일화하는 MATLAB repmat
함수를 사용하여 스칼라 구조체에서 구조체 배열을 만들 수 있습니다.
Define Scalar Structures for Code Generation 항목에 설명된 대로 스칼라 구조체를 만듭니다.
repmat
를 호출하여 스칼라 구조체와 배열의 차원을 전달합니다.표준 배열 인덱싱 및 구조체 점 표기법을 사용하여 각 구조체에 값을 할당합니다.
예를 들어 다음 코드는 스칼라 구조체로 구성된 1×3 배열 X
를 생성합니다. 배열의 각 요소는 두 개의 필드 a
와 b
가 있는 구조체 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 구조체형 배열을 생성합니다. 구조체 배열의 각 구조체에서 a
는 double
형이고 b
는 char
형입니다.
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; ...