change a cell having 3-dimenisional matrix into a 2-dimenisional matrix
2 views (last 30 days)
Show older comments
Hi all,
I have a variable named "z" which has the 2-dimensional cell structure like following program:
for tt=1:3
for nn=1:4
z{tt,nn}=rand(2,3,4);
end
end
z =
[2x3x4 double] [2x3x4 double] [2x3x4 double] [2x3x4 double]
[2x3x4 double] [2x3x4 double] [2x3x4 double] [2x3x4 double]
[2x3x4 double] [2x3x4 double] [2x3x4 double] [2x3x4 double];
assume the value of z at tt=1 and nn=1 , i.e. z{1,1}, is qual below: z{1,1}
val(:,:,1) =
0.8147 0.1270 0.6324
0.9058 0.9134 0.0975
val(:,:,2) =
0.2785 0.9575 0.1576
0.5469 0.9649 0.9706
val(:,:,3) =
0.9572 0.8003 0.4218
0.4854 0.1419 0.9157
val(:,:,4) =
0.7922 0.6557 0.8491
0.9595 0.0357 0.9340
z{2,1} =
val(:,:,1) =
0.6880 0.5716 0.8095
0.2968 0.3162 0.3655
val(:,:,2) =
0.6988 0.9646 0.5982
0.6334 0.2008 0.0837
val(:,:,3) =
0.5444 0.0407 0.7093
0.8461 0.3294 0.8603
val(:,:,4) =
0.5009 0.4286 0.4730
0.9948 0.2673 0.1608
z{3,1} =
val(:,:,1) =
0.1589 0.7571 0.9669
0.2683 0.6092 0.7733
val(:,:,2) =
0.5729 0.2871 0.0944
0.4502 0.7524 0.1068
val(:,:,3) =
0.7349 0.5806 0.7137
0.3546 0.2989 0.3605
val(:,:,4) =
0.7185 0.0837 0.0938
0.9953 0.4682 0.7252
and so on.
I want to put all elements of z into a matrix and make a new matrix named "zz" whose size is 24*9. for example the zz(:, 1:3) is like below:
zz(:,1:3)=[0.8147 0.1270 0.6324;
0.9058 0.9134 0.0975;
0.2785 0.9575 0.1576;
0.5469 0.9649 0.9706;
0.9572 0.8003 0.4218;
0.4854 0.1419 0.9157;
0.7922 0.6557 0.8491;
0.9595 0.0357 0.9340;
0.6880 0.5716 0.8095;
0.2968 0.3162 0.3655;
0.6988 0.9646 0.5982;
0.6334 0.2008 0.0837;
0.5444 0.0407 0.7093;
0.8461 0.3294 0.8603;
0.5009 0.4286 0.4730;
0.9948 0.2673 0.1608;
0.1589 0.7571 0.9669;
0.2683 0.6092 0.7733;
0.5729 0.2871 0.0944;
0.4502 0.7524 0.1068;
0.7349 0.5806 0.7137;
0.3546 0.2989 0.3605;
0.7185 0.0837 0.0938;
0.9953 0.4682 0.7252;]
How can I do it? following is any help whould be appreciated. Thanks in advance.
0 Comments
Answers (1)
Matt J
on 11 Oct 2013
zz=reshape( cat(2,z{:}) ,[],9);
3 Comments
Matt J
on 13 Oct 2013
I think you need to redo the description of what you want. There are 288 doubles total contained across z, yet you claim to want a final matrix zz that is 24x9, which would contain only 216 elements. We also cannot see what data order you want when you only show the first 3 columns of zz.
See Also
Categories
Find more on Smoothing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!