Для создания кода при создании массива структур MATLAB ® соответствующие поля в элементах массива должны иметь одинаковый размер, тип и сложность.
После создания массива структур можно сделать поля структуры переменным размером с помощью coder.varsize. См. раздел Объявление полей структуры переменного размера.
Массив структур можно создать из скалярной структуры с помощью MATLAB. repmat функция, которая реплицирует и замыкает существующую скалярную структуру:
Создайте скалярную структуру, как описано в разделе Определение скалярных структур для создания кода.
Звонить repmat, проходя скалярную структуру и размеры массива.
Назначьте значения каждой структуре с помощью стандартной индексации массива и точечной нотации структуры.
Например, следующий код создает X, массив скалярных структур 1 на 3. Каждый элемент массива определяется структурой s, которая имеет два поля, a и b:
... s.a = 0; s.b = 0; X = repmat(s,1,3); X(1).a = 1; X(2).a = 2; X(3).a = 3; X(1).b = 4; X(2).b = 5; X(3).b = 6; ...
structСоздание массива структур с помощью struct укажите аргументы значения поля в виде массивов ячеек. Каждый элемент массива ячеек является значением поля в соответствующем элементе массива структуры. Для создания кода соответствующие поля в структурах должны иметь один и тот же тип. Поэтому элементы в массиве ячеек значений полей должны иметь один и тот же тип.
Например, следующий код создает массив структуры 1 на 3. Для каждой структуры в массиве структур, a имеет тип double и b имеет тип char.
s = struct('a', {1 2 3}, 'b', {'a' 'b' 'c'});
Для создания небольшого массива структур можно использовать оператор конкатенации, квадратные скобки ( [ ] ), чтобы объединить одну или несколько структур в массив. См. разделы Создание, конкатенация и расширение матриц. Для создания кода связанные структуры должны иметь одинаковый размер, класс и сложность.
Например, следующий код использует конкатенацию и локальную функцию для создания элементов массива структуры 1 на 3:
... W = [ sab(1,2) sab(2,3) sab(4,5) ]; function s = sab(a,b) s.a = a; s.b = b; ...