Using 2D array in 'From workspace' block in simulink

37 views (last 30 days)
Hello,
I have a simulink model that gets it's input data from 'from workspace' block, I have the data parameter in this block setting to [time data], where time is M by 1 and data is M by N array. Everything is working and the output is as expected.
Now I want to use a 2D array so I changed data from M by N to M by N by Z but I'm getting the following error :
  • Dimensions of arrays being concatenated are not consistent.
The idea is for each time(i) the simulink model handle a 2D array of data(i,:,:). Not sure if this makes sense !
Would really appreciate it if any one here can give me some feedback and mybe tell me what I'm doing wrong here ?
Thank you

Answers (2)

Fangjun Jiang
Fangjun Jiang on 27 Aug 2019
Click "Help" button on the dialog of the "From Workspace" block, open the example model for "Read 2-D Signals in Structure Format From Workspace"
  3 Comments
Chaabane
Chaabane on 28 Aug 2019
thank you for the update, but unfortunetly I need to run it automatically for huge set of data so this won't work in my case!
Fangjun Jiang
Fangjun Jiang on 28 Aug 2019
This is just an illustration on how you suppose to contruct your data. At each time(i), the "From Workspace" will read in a 2D array of data(:,:,i).

Sign in to comment.


Chaabane
Chaabane on 27 Aug 2019
Thank you for your answer, I have already tried this example but for me, it is very confusing how this works on Simulink!
If I use the following code
time = (1:50)';
data = zeros(50,8);
and add it to the 'from workspace' block as a vector [time data]
1.PNG
The output size is 8 bytes. So simulink go throught time and uses the data that corresponds to that time.
But if I use structure like the example (see my code below), it seems that all the data in datastruct is used at once which is not something practical in my case.
2.PNG
time = (1:50)';
data = zeros(50,8);
M = repmat(data,[1 1 length(time)]);
datastruct.time = time;
datastruct.signals.values = M;
datastruct.signals.dimensions = size(data);

Categories

Find more on Event Functions in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!