Требования к памяти для массива структур

Массивы структур не требуют полностью непрерывной памяти. Однако каждое поле требует непрерывной памяти, как и заголовок 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 выделяет память только для заголовка, а не для содержимого массива.

Для получения дополнительной информации смотрите: