Main Content

coder.StructType 클래스

네임스페이스: coder
슈퍼클래스: coder.ArrayType

입력 사양에 허용되는 MATLAB 구조체형 배열 집합 표현

설명

coder.StructType의 객체는 생성 코드에 허용되는 구조체형 배열을 지정합니다. 이 클래스의 객체는 fiaccel 명령의 -args 옵션에만 사용하십시오. 생성된 MEX 함수에 대한 입력값으로 전달하지 마십시오.

생성

t = coder.typeof(structV)는 스칼라 구조체 struct_v와 동일한 필드를 갖는 구조체에 대한 coder.StructType 객체를 생성합니다.

t = coder.typeof(structV,sz,variableDims)sz로 지정된 상한 크기와 variableDims로 지정된 가변 차원을 갖는 coder.StructType을 생성합니다. sz가 차원에 대해 Inf를 지정할 경우 차원의 크기는 비유계 가변 크기가 됩니다. sz[]이면 structV의 상한 크기는 변경되지 않은 상태로 유지됩니다. variableDims를 지정하지 않으면 해당 유형의 유계 차원이 고정됩니다. variableDims가 스칼라이면 이 함수는 이 값을 1 또는 0인 차원(고정 크기)이 아닌 유계 차원에 적용합니다.

t = coder.newtype('struct',structV,sz,variableDims)는 스칼라 구조체 structV와 동일한 필드를 갖고 상한 크기 szvariableDims에 지정된 가변 차원을 갖는 구조체 배열에 대한 coder.StructType 객체를 생성합니다. sz가 차원에 대해 Inf를 지정할 경우 차원의 크기는 비유계로 간주되고 차원은 가변 크기로 간주됩니다. variableDims를 지정하지 않으면 해당 유형의 유계 차원이 고정됩니다. variableDims가 스칼라이면 이 함수는 이 값을 1 또는 0인 차원(고정 크기)이 아닌 유계 차원에 적용합니다.

참고

Coder Type Editor를 사용하여 대화형 방식으로 coder.Type 객체를 생성하고 편집할 수 있습니다. Create and Edit Input Types by Using the Coder Type Editor 항목을 참조하십시오.

입력 인수

모두 확장

새 구조체 유형의 필드를 지정하는 입력 구조체 변수로, 스칼라 구조체로 지정됩니다.

type 객체 차원의 크기로, 정수로 구성된 벡터로 지정됩니다.

각 차원이 가변 크기인지 여부를 지정하는 옵션으로, 부울 벡터로 지정됩니다. 이 벡터의 요소를 1로 지정하면 대응하는 차원이 가변 크기를 갖습니다. 그 외의 경우에는 차원이 고정 크기입니다.

속성

모두 확장

이 유형의 구조체에 대한 런타임 메모리 정렬(단위: 바이트).

Embedded Coder® 라이선스가 있고 CRL(코드 대체 라이브러리)을 사용하는 경우, 입력값으로 지정된 데이터 객체를 대체 함수의 지정된 경계에 맞춰 정렬할 수 있습니다. 데이터 정렬이 필요한 특정 타깃에 맞춘 함수 구현을 활용하려면 이 기능을 사용하십시오. 이 클래스는 기본적으로 구조체를 특정 경계에 맞춰 정렬하지 않습니다. 즉, 정렬이 필요한 CRL 함수가 디폴트 구조체와 일치하지 않습니다.

값 클래스 이름으로, string형 스칼라로 반환됩니다.

구조체가 외부에서 정의되었는지 여부를 나타내며, 1 또는 0으로 반환됩니다. 값 1은 구조체가 외부에서 정의되었음을 나타냅니다. 값 0은 구조체가 내부에서 정의되었음을 나타냅니다.

구조체의 필드 유형으로, 구조체로 지정됩니다.

외부 헤더 파일 이름으로, 비어 있지 않은 문자형 벡터 또는 string형 스칼라로 반환됩니다. 구조체 유형이 외부에서 정의된 경우, 헤더 파일의 이름에는 구조체의 외부 정의가 포함됩니다(예: "mystruct.h").

기본적으로 생성 코드에는 표준 헤더 파일 다음에 사용자 지정 헤더 파일에 대한 #include 명령문이 포함되어 있습니다. 표준 헤더 파일이 사용자 지정 구조체 유형을 참조하는 경우 컴파일이 실패합니다. HeaderFile 속성을 지정하면, MATLAB® Coder™는 헤더 파일을 필요한 위치에 포함시킵니다.

type 객체의 상한으로, 정수로 구성된 벡터 또는 정수 스칼라로 지정됩니다.

배열의 각 차원이 고정 크기인지 가변 크기인지를 지정하는 옵션입니다. 값 1은 대응하는 요소가 가변 크기임을 나타냅니다. 값 0은 대응하는 요소가 고정 크기임을 나타냅니다.

예제

모두 축소

이 예제에서는 가변 크기 필드를 갖는 구조체에 대한 유형을 생성하는 방법을 보여줍니다.

coder.typeof를 사용하여 type 객체를 만듭니다.

x.a = coder.typeof(0,[3 5],1);
x.b = magic(3);
t = coder.typeof(x)
t = 
coder.StructType
   1×1 struct
      a: :3×:5 double
      b: 3×3 double

외부에서 정의된 구조체 유형 만들기

외부에서 정의된 구조체 유형을 만듭니다.

S.a = coder.typeof(double(0));
S.b = coder.typeof(single(0));
T = coder.typeof(S);
T = coder.cstructname(T,'mytype','extern',HeaderFile='myheader.h');

구조체 필드의 유형을 확인합니다.

T.Fields
ans = struct with fields:
    a: [1x1 coder.PrimitiveType]
    b: [1x1 coder.PrimitiveType]

구조체 유형을 생성합니다.

ta = coder.newtype('int8',[1 1]);
tb = coder.newtype('double',[1 2],[1 1]);
z = coder.newtype('struct',struct('a',ta,'b',tb))
coder.StructType
   1x1 struct
      a: 1x1 int8 
      b: :1x:2 double  

이 유형의 입력 파라미터를 한 개 갖는 MATLAB 함수 fcn.m에 대한 C 라이브러리를 생성합니다.

codegen -config:lib fcn -args {z}

버전 내역

R2011a에 개발됨