MATLAB Answers

How to save multiple 2D arrays in a third dimension in simulink?

13 views (last 30 days)
Mariana
Mariana on 26 Apr 2020
Answered: Samatha Aleti on 30 Apr 2020
I will be reading multiple 2D arrays of the same size (100, 8) in time. The idea is to concatenate all of them in a 3D array.
How can implement this in simulink?

  3 Comments

Sindar
Sindar on 27 Apr 2020
I'm not familiar with simulink, but in Matlab:
my3Darray = cat(3,my2Darray1,my2Darray2,<etc.>);
or, while making them:
my3Darray=zeros(100,8,10);
for ind=1:10
my2Darray = rand(100,8); % or however you read them
my3Darray(:,:,ind) = my2Darray;
end
madhan ravi
madhan ravi on 27 Apr 2020
Sindars code can be encapsulated in the function block in SIMULINK.
Mariana
Mariana on 29 Apr 2020
I am not sure on how to save them. I have multiple 2D arrays and I would like to save only the arrays that have a 1 in the last column.
I am receiving matrixes that have the same size but witth values non zero and zero. I would like to save into a 3D array all the 2D arrays with no zero values. Each one of them found concatenated into the 3rd dimension.
I am not sure how to implement it.

Sign in to comment.

Answers (1)

Samatha Aleti
Samatha Aleti on 30 Apr 2020
Hi,
You can accordingly place a condition for concatenating each 2D array to a 3D array. Here is a sample code(modified code of Sindar's):
N = 10; % Let Num of 2D arrays
my3Darray=zeros(100,8,N);
for ind=1:10
my2Darray = randi(50,100,8);
my3Darray(:,:,ind) = my2Darray;
% check for "1" in last column and remove concatenation of 2D array if there is no "1"
if all(my2Darray(:,end) ~= 1)
my3Darray(:,:,ind) = [];
end
end

  0 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!