Для примера того, как использовать структуры в блоке MATLAB function, откройте модель emldemo_bus_struct.
В этой модели блок MATLAB function получает сигнал шины использование структуры inbus
во входном порту 1 и выходные параметры два сигнала шины от структур outbus
в выходном порту 1 и outbus1
в выходном порту 2. Входной сигнал прибывает из блока Bus Creator MainBusCreator
, который связывается, сигнализирует о ele1
, ele2
и ele3
. ele3
сигнала является вывод другого блока Bus Creator SubBusCreator
, который связывает сигналы a1
и a2
. Структура outbus
соединяется с блоком BusSelector1
Селектора Шины; структура outbus1
соединяется с другим блоком BusSelector3
Селектора Шины.
Чтобы исследовать функцию MATLAB® fcn
, дважды кликните блок MATLAB function. Заметьте, что код неявно задает локальную переменную mystruct
структуры с помощью функции struct
и использует эту локальную переменную структуры, чтобы инициализировать значение первого вывода outbus
. Это инициализирует второй вывод outbus1
к значению поля ele3
структуры inbus
.
Вот определения структур в блоке MATLAB function в примере, когда они появляются в Портах и Менеджере данных:
Каждый ввод и вывод структуры должен быть задан объектом Simulink.Bus
в базовом рабочем пространстве (см., Создают Структуры в блоках MATLAB function). Это означает, что структура совместно использует те же свойства, как объект шины, включая номер, имя, вводит, и последовательность полей. В этом примере следующие объекты шины задают вводы и выводы структуры:
Объект Simulink.Bus
MainBus
задает вход inbus
структуры и структуру вывод outbus
. Объект Simulink.Bus
SubBus
задает структуру вывод outbus1
. На основе этих определений inbus
и outbus
имеют те же свойства как MainBus
и, поэтому, ссылаются на их поля теми же именами как поля в MainBus
, с помощью записи через точку (см. Индексные Подструктуры и Поля). Точно так же outbus1
ссылается на свои поля теми же именами как поля в SubBus
. Вот ссылки поля для каждой структуры в этом примере:
Структура | Первое поле | Второе поле | Третье поле |
---|---|---|---|
inbus | inbus.ele1 | inbus.ele2 | inbus.ele3 |
outbus | outbus.ele1 | outbus.ele2 | outbus.ele3 |
outbus1 | outbus1.a1 | outbus1.a2 | — |