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