Данные переменного размера являются данными, размер которых может измениться во время выполнения. В отличие от этого данные фиксированного размера являются данными, размер которых известен и блокируется во время компиляции и не изменяется во время выполнения. Используйте данные переменного размера, если выход из графика Stateflow® в модели Simulink® является массивом, размер которого зависит от состояния графика.
Поддержка данных переменного размера включена по умолчанию. Чтобы включить или отключить эту опцию для отдельных графиков, измените свойство диаграммы Support variable-size arrays, как описано в Specify Properties для диаграмм Stateflow.
После включения поддержки на уровне графика можно объявить данные переменного размера путем выполнения этих шагов:
Добавьте, что объект данных к графику, как описано в Добавляют Данные Stateflow.
Установите свойство Scope как Local
входной параметр
, или Output
.
Примечание
Графики, которые используют C в качестве языка действия, не поддерживают переменный размер локальные данные.
Установите флажок Variable size.
Используйте свойство Size явным образом задать максимальный размер для данных. Например, чтобы задать 2D матрицу, где максимальный размер 2 для первой размерности и 4 для второго измерения в поле Size, вводят [2 4]
.
Диаграммы Stateflow, которые используют MATLAB® в качестве языка действия, могут получить доступ и изменить вход переменного размера, вывести, и локальные данные в действиях перехода и состоянии.
В отличие от этого графики, которые используют C в качестве языка действия, могут только обмениваться входными и выходными данными переменного размера с другими графиками и блоками Simulink при помощи:
Функции MATLAB
Функции Simulink
Таблицы истинности, которые используют MATLAB в качестве языка действия
Когда вы используете данные переменного размера в графике C, эти инструкции применяются:
Объявите данные переменного размера как вводы и выводы графика только, и не как локальные данные.
Чтобы задать переменный размер строят диаграмму входных параметров, которые наследовали их размер от модели Simulink, устанавливают свойство Size на -1
.
Все расчеты с данными переменного размера должны произойти в функциях, и не непосредственно в состояниях или переходах.
Можно передать данные переменного размера как вводы и выводы к этим функциям от действий перехода и состояния. Кроме того, функции MATLAB могут получить доступ к уровню графика, данные переменного размера непосредственно.