exponenta event banner

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

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

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

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

Использование повторного сопоставления для определения массива структур с согласованными свойствами полей

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