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