Задайте массивы структур для генерации кода

Обеспечение непротиворечивости полей

Для генерации кода, когда вы создаете массив структур MATLAB®, соответствующие поля в элементах массива должны иметь тот же размер, ввести, и сложность.

Если вы создали массив структур, можно сделать полевой переменный размер структуры при помощи coder.varsize. Смотрите объявляют поля структуры Переменного Размера.

Используя repmat, чтобы Задать Массив Структур с Сопоставимыми Свойствами полей

Можно создать массив структур от скалярной структуры при помощи MATLAB repmat функция, которая реплицирует и размещает существующую скалярную структуру рядом:

  1. Создайте скалярную структуру, как описано в Задают Скалярные Структуры для Генерации кода.

  2. Вызвать repmat, передача скалярной структуры и размерностей массива.

  3. Присвойте значения каждой структуре с помощью стандартной индексации массива и записи через точку структуры.

Например, следующий код создает 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;
...