how to split a member of cell array
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I have a cell array of 100*1 and each member has the size of 5*700. what I want to do is split each member to 5 member of 1*700. So my output will be a cell number of 500*1 (5*100) and each member has the size of 1*700. I hope that I could clarify what I want to do.
thanks a lot
2 Kommentare
the cyclist
am 1 Okt. 2018
What class of object is the 5*700 contents of each cell? Is it a numeric array, another cell array, or something else?
Akzeptierte Antwort
Jan
am 1 Okt. 2018
% Create some input data for testing ("InCell" is your input):
InCell = cell(100, 1);
for k = 1:100
InCell{k} = rand(5, 700);
end
OutCell = cell(500, 1);
a = 1;
b = 1;
for k = 1:500
OutCell{k} = InCell{a}(b, :);
b = b + 1;
if b > 5
a = a + 1;
b = 1;
end
end
This is the simply way using loops. Smarter:
Tmp = cat(1, InCell{:});
OutCell = num2cell(Tmp, 2);
Weitere Antworten (1)
the cyclist
am 1 Okt. 2018
Another version of the loop, that is a little bit more intuitive to me:
OutCell = cell(500, 1);
for nc = 1:100
for nd = 1:5
OutCell{5*(nc-1)+nd} = InCell{nc}(nd,:);
end
end
0 Kommentare
Siehe auch
Kategorien
Mehr zu Data Type Identification finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!