Main Content

mxCreateStructArray(C)

N차원 구조체형 배열

C 구문

#include "matrix.h"
mxArray *mxCreateStructArray(
    mwSize ndim, const mwSize *dims, int nfields, const char **fieldnames);

설명

mxCreateStructArray를 호출하여 채워지지 않은 구조체 mxArray를 생성합니다. 구조체 mxArray의 각 요소에는 동일한 개수의 필드(nfields에 지정됨)가 들어 있습니다. 각 필드에는 fieldnames에 지정된 이름이 있습니다. MATLAB® 구조체인 mxArray는 C 언어의 structs 배열과 개념적으로 동일합니다.

각 필드는 NULL로 초기화된 mxArray 포인터를 한 개씩 유지합니다. mxSetField 또는 mxSetFieldByNumber를 호출하여 NULL이 아닌 mxArray 포인터를 필드에 배치합니다.

이 함수는 dims 인수에 지정된 후행 한원소 차원을 자동으로 제거합니다. 예를 들어, ndim5이고 dims[4 1 7 1 1]이면, 결과로 나타나는 배열의 차원은 4×1×7입니다.

mxArray는 물론 이와 연결된 요소를 할당 해제하려면, mxArray 사용을 마쳤을 때 mxDestroyArray를 호출하십시오.

입력 인수

모두 확장

차원 수로, mwSize로 지정됩니다. ndim이 2보다 작은 경우 mxCreateStructArray는 차원 수를 2로 설정합니다.

차원 배열로, const mwSize 배열로 지정됩니다.

차원 배열의 각 요소에는 해당 차원의 배열 크기가 들어 있습니다. 예를 들어 5×7 배열을 생성하려면, dims[0]을 5로, dims[1]을 7로 설정하십시오.

일반적으로 dims 배열에는 ndim개의 요소가 들어 있습니다.

각 요소의 필드 수로, int로 지정됩니다.

하나 이상의 필드 이름으로, const char **로 지정됩니다.

필드 이름은 유효한 MATLAB 식별자여야 합니다. 즉, NULL이거나 비어 있을 수 없습니다. 필드 이름은 대/소문자를 구분합니다. 필드 이름의 최대 길이를 확인하려면 namelengthmax 함수를 사용하십시오.

출력 인수

모두 확장

mxArray에 대한 포인터로, mxArray *로 지정됩니다.

mxArray 생성을 위한 여유 힙 공간이 충분하지 않으면 이 함수는 실패합니다.

  • MEX 파일 — 함수는 MEX 파일을 종료하고 제어를 MATLAB 프롬프트로 반환합니다.

  • 독립 실행형(비 MEX 파일) 애플리케이션 — 함수는 NULL을 반환합니다.

예제

matlabroot/extern/examples/mx에서 다음 예제를 참조하십시오.

버전 내역

R2006a 이전에 개발됨