Main Content

구조체형 배열에 대한 메모리 요구 사항

구조체형 배열을 구성하는 메모리가 전부 연속적일 필요는 없습니다. 그러나, MATLAB®이 배열을 설명하기 위해 생성하는 헤더와 마찬가지로, 각 필드에는 연속 메모리가 필요합니다. 매우 큰 배열의 경우, 필드 개수나 필드에 포함된 요소 개수를 단계적으로 증가하면 Out of Memory 오류가 발생합니다.

다음과 같이 struct 함수를 사용하여 초기값을 할당함으로써 내용에 사용할 메모리를 사전할당합니다.

newStruct(1:25,1:50) = struct('a',ones(20),'b',zeros(30),'c',rand(40));

이 코드는 25×50 구조체형 배열 S를 생성하며 이 배열은 필드 a, b, c를 갖습니다.

초기값을 할당하지 않으려면 다음과 같이 구조체형 배열의 마지막 요소에 대한 각 필드에 빈 배열을 할당하여 구조체형 배열을 초기화할 수 있습니다.

newStruct(25,50).a = [];
newStruct(25,50).b = [];
newStruct(25,50).c = [];

또는 다음과 같이 할 수도 있습니다.

newStruct(25,50) = struct('a',[],'b',[],'c',[]);

그러나, 이 경우 MATLAB은 헤더에 사용할 메모리만 할당하고 배열의 내용에 사용할 메모리는 할당하지 않습니다.

자세한 내용은 다음을 참조하십시오.