You can assign values to any structure, substructure, or field in a MATLAB Function block. Here are the guidelines:
Operation | Conditions |
---|---|
Assign one structure to another structure | You must define each structure with the same number, type,
and size of fields, either as Simulink.Bus objects
in the base workspace or locally as implicit structure declarations
(see Create Structures in MATLAB Function Blocks). |
Assign one structure to a substructure of a different structure and vice versa | You must define the structure with the same number, type, and
size of fields as the substructure, either as Simulink.Bus objects
in the base workspace or locally as implicit structure declarations. |
Assign an element of one structure to an element of another structure | The elements must have the same type and size. |
For example, the following table presents valid and invalid structure assignments based on the specifications for the model described in Attach Bus Signals to MATLAB Function Blocks:
Assignment | Valid or Invalid? | Rationale |
---|---|---|
outbus = mystruct ; | Valid | Both outbus and mystruct have
the same number, type, and size of fields. The structure outbus is
defined by the Simulink.Bus object MainBus and mystruct is
defined locally to match the field properties of MainBus . |
outbus = inbus ; | Valid | Both outbus and inbus are
defined by the same Simulink.Bus object, MainBus . |
outbus1 = inbus.ele3 ; | Valid | Both outbus1 and inbus.ele3 have
the same type and size because each is defined by the Simulink.Bus object SubBus . |
outbus1 = inbus ; | Invalid | The structure outbus1 is defined by a different Simulink.Bus object
than the structure inbus . |