Wrong sized array from "To workspace"

Hello!
I am interested in using several arrays in a Matlab code. Thus, I used the "to workspace" block to convert signal values to arrays. I used the settings:
However, for some reason, I got two arrays with different dimensions:
What should I do to have correctly sized arrays?

3 Comments

If you have any kind off conditional execution, then different branches might have executed a different number of times.
I think that, unless the To Workspace block is actually inside a conditionally executed subsystem, the only thing that matters is the sample time of the signal input to the To Workspace block, becasue the Sample time paramater of the To Workspace block is set to -1 (inherited).
I find it a little bit weird because that longer array is the integration of this shorter array. Otherwise I wouldn't say that there are any conditions.

Sign in to comment.

 Accepted Answer

Are you using a variable step solver in your model? If so, you'd need to change it to a fixed step solver.

3 Comments

My understanding (possibly wrong) is that when you use a variable-step solver that does not have conditional blocks, that the calculation of particular signals is effectively "pull" -- calculated when needed. An implication from that is that if you have a two different chains of blocks, that the chains will not necessarily get calculated the same number of times, so the logged signals might be different lengths.
I am not at all certain of this.
I tried to change the sample time to the exact simulation sample time value and it looks like it worked and got an equally shaped array.
You'd accept the answer :)

Sign in to comment.

More Answers (1)

Use fixed step solver instead of variable step solver. The data to workspace will be with the same lengnth

Categories

Products

Release

R2022b

Community Treasure Hunt

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

Start Hunting!