Extract and realign cells into new cell

1 view (last 30 days)
Xh Du
Xh Du on 4 Jul 2017
Answered: KSSV on 4 Jul 2017
Hi all,
I have a cell array 'cellA' which contains cell:
cellA =
{2x1 cell} {2x1 cell} {2x1 cell}
{2x1 cell} {2x1 cell} {2x1 cell}
cellA{1}
ans =
[12x2 double]
[30x2 double]
All arrays in cellA are same size. Now what I want is to extract each double array and put them in a new cell, so I will have 2 new cells:
cellB =
[12x6 double]
[12x6 double]
cellC =
[30x6 double]
[30x6 double]
I know I can probably write a for loop to do this, but is there a faster, vectorized way?
Thanks!

Accepted Answer

KSSV
KSSV on 4 Jul 2017
A = cell(2,3) ;
for i = 1:2
for j = 1:3
A{i,j}{1,1} = rand(12,2) ;
A{i,j}{2,1} = rand(30,2) ;
end
end
B = [A{:}] ;
B1 = mat2cell(cell2mat(reshape(B(1,:),2,3)),[12 12]);
B2 = mat2cell(cell2mat(reshape(B(2,:),2,3)),[30 30]);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!