How to combine n cell arrays into one giant one?

5 views (last 30 days)
Susan
Susan on 7 Jun 2021
Edited: Susan on 7 Jun 2021
Hello,
I have a 12-by-190 cell array dataset, each contains either a 1-by-504 cell array or a 1-by-336 cell array. Each of these cell array contains a vector of size of either 600-by-1 or 300-by-1.
As for labels, I have a 12-by-190 cell arrays that each cell contains either a 1-by-504 cell array or a 1-by-336 cell array.
I'd like to concatenate all of the cells together into one giant cells (or preferably a giant matrix) and a corresponding array of labels.
How can I do that?
Thanks in advance

Answers (1)

SALAH ALRABEEI
SALAH ALRABEEI on 7 Jun 2021
I think you need to loop a bit since you have cells of cells. Let A and B are ur outer cell matrices, data and labels
% Try this
NA=[];
NB =[];
for i = length(A)
a = [A{i}{:}];
b = [B{i}{:}];
NA = [NA,a(:)];
NB = [NB,b(:)];
end
  2 Comments
SALAH ALRABEEI
SALAH ALRABEEI on 7 Jun 2021
if you get an error try this instead [NA;a(:)];
Susan
Susan on 7 Jun 2021
Edited: Susan on 7 Jun 2021
Thank you so much for your response. I added one more loop to go over 12 cells but it seems it takes forever
NA=[];
NB =[];
for i = 1: size(A,1)
for j = 1: size(A,2)
a = [A{i}{:}];
b = [B{i}{:}];
NA = [NA;a(:)];
NB = [NB;b(:)];
end
end
any idea? Moreover NA = [NA,b(:)] gives me error and using ";" doesn't make sense with my data.
Thanks again

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!