The "To Workspace" block creates a timeseries with Data of size Nx1 when passed scalar signals and Data of size AxBxN for signals of size AxB.
When defining the elements of a bus in the Bus Editor you can specify the dimensions of each element. If the "Dimensions" field of a BusElement is set to 1, the output of a Bus Selector block for that element will be a normal scalar signal and will give an Nx1 matrix when exporting with the "To Workspace" block. However, if the "Dimensions" field is set to [1 1] the "To Workspace" block treats the signal like a two-dimensional signal and concatenates values from different time steps along the third dimension, which results in a 1x1xN variable exported to the workspace.
Assigning the dimensions of a Signal to [1 1] can cause Simulink to treat the signal as a 2D matrix. This can be demonstrated by connecting a Constant block, Signal Specification block, and To Workspace block together and setting the dimension to [1 1] in the Signal specification block.
To ensure consistent dimensions make sure all of your scalar bus elements that might affect the signal passed into the "To Workspace" block have their "Dimensions" field set to [1 1] and not 1 or set relevant Signal dimensions to [1 1] instead of 1.
Best Answer