По умолчанию созданный код содержит одномерные массивы для данных многомерной модели. В диалоговом окне «Параметры конфигурации» установите для параметра компоновки «Массив» значение Row-major, можно сохранить размеры многомерных массивов в созданном коде. См. раздел Сохранение измерений многомерных массивов в сгенерированном коде.
В созданном коде можно сохранить размеры входов и выходов корневого уровня, параметры, сигналы, состояния, таблицы поиска и хранилища данных, настроив классы хранения в редакторе словаря Embedded Coder и сопоставления кодов. Свойство Preserve array dimensions, настроенное для классов хранения, применимо к элементам данных в модели. Свойство класса хранения нельзя использовать для сохранения размеров элементов шины, поскольку объекты шины являются глобальными типами, обычно совместно используемыми несколькими элементами данных, такими как состояния, сигналы и т. д.
Для сохранения размеров объектов шины, содержащих многомерные элементы шины, используйте свойство «Сохранить размеры элемента» в редакторе шин. Размеры объектов шины можно сохранить только для моделей ERT.
1. Открытие модели rtwdemo_preservedimensions_slbus.
rtwdemo_preservedimensions_slbus;

2. Откройте приложение Embedded Coder.
3. В диалоговом окне «Параметры конфигурации» убедитесь, что для параметра Array layout установлено значение Row-major.
1. Модель включает в себя: Simulink.Bus объекты в базовом рабочем пространстве:
ImperialSpecs
MetricSpecs
На панели инструментов Simulink на вкладке Modeling в коллекции Design выберите Bus Editor. Либо в командной строке MATLAB введите buseditor.
2. Для объекта шины ImperialSpecsоткройте вкладку Создание кода и установите флажок Сохранить размеры элемента.

Либо в командной строке MATLAB введите:
ImperialSpecs.PreserveElementDimensions = 1;
3. Нажмите «Применить» и закройте диалоговое окно «Редактор шины».
Создайте код для модели. На вкладке C Code нажмите кнопку Build.
currentDir = pwd;
[~,cgDir] = rtwdemodir();
evalc('slbuild(''rtwdemo_preservedimensions_slbus'')');
Сгенерированный код сохраняет размеры многомерного элемента шины. В ImperialSpecs объект шины, элемент шины DimensionsInInches является многомерным массивом [10 3], тогда как элемент шины WeightInPounds является вектором [10]. Свойство Reserve element dimensions применяется к многомерным массивам.
file = fullfile('rtwdemo_preservedimensions_slbus_ert_rtw',... 'rtwdemo_preservedimensions_slbus.h'); rtwdemodbtype(file,'#define DEFINED_TYPEDEF_FOR_ImperialSpecs_', ... '} ImperialSpecs;',0,1);
typedef struct {
real_T DimensionsInInches[10][3];
real_T WeightInPounds[10];
} ImperialSpecs;