Cant use variable size of bus member vector Simulink

조회 수: 4(최근 30일)
I have a bus object (<Quiver>) with a nested bus object (<arrows>). This nested bus object is a vector of size L (here, 100).
It looks like this:
I now want to reduce the length of this nested objects vector, so I do something like this:
Then I want to reuse the bus type like a <Quiver> again, but with a different length of <arrows>. But this wont work:
  1. It will be created as a virtual bus, thus will not be treated as a struct (like I want it to).
  2. I then take a To Virtual Bus element and set the output bus type to non-virtual. This also throws an error because one of the inputs/outputs must be declared as a Bus Type object. I cant do that, because the Bus Type Object <Quiver> has an length of <arrows> of L (here, L), not the length I just reduced it to.
  3. In the Type Editor, I cant change the length of the vector of the nested bus type object to "variable" (`DimensionsMode` != Fixed). This is very hindering in accomplishing my goals.
How can I achieve what I intend to do?
Thank you very much in advance!

채택된 답변

Mark McBroom
Mark McBroom 2023년 2월 5일
It is not possible to change the length of a fixed length bus element. One approach to work around this would be to create a new variable that keeps track of the used size of <arrows> elelment... in this case any value from1 to 100. You could then use this new variable down stream when you want to loop over all of the used elements in <arrows>
  댓글 수: 1
Timo 2023년 2월 6일
This is very unfortunate but I get what you propose. Thank you very much!

댓글을 달려면 로그인하십시오.

추가 답변(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!

Translated by