Cant use nested bus objects with bus object arrays in simulink

25 views (last 30 days)
I am trying to build a Bus (struct) (<Quiver>) that has an array of a nested bus type (<Arrow>). Later, I want to dissect this array (<arrows>), loop over it and use the members (<point>, <head>) of that bus object.
However, I get the following error:
Selected signal 'arrows.origin.x' in the Bus Selector block 'Demo/Inport' is invalid since it refers to a bus element within an array of sub-buses. The path to the array of sub-buses is 'arrows'. Please select the appropriate array element using a Selector block before using the Bus Selector block to access an element within the bus.
This is very annoying. Programatically this is totally normal, nested stucts. Why can I specify the dimension of that struct array, if it wont compile?
How can I do what I intend to do?
This is what I am doing, basically:

Accepted Answer

Mark McBroom
Mark McBroom on 3 Feb 2023
As the error message indicates, configure the bus selector to select the arrows element, which is an array of buses. You can then use a selector block to chose one or more of the elements from the array of buses... and/or you can feed into a For Each Subsystem to operate on each of the elements
  1 Comment
Timo on 3 Feb 2023
Edited: Timo on 3 Feb 2023
Thank you, this helped. The selector part was important ("Vector selector", named selector, for anyone reading this)

Sign in to comment.

More Answers (0)


Find more on Simulink Functions in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!