trivial matrix question: how to rearrange matrices in a given order

1 view (last 30 days)
Hello everyone,
I know this could seems trivial and meybe here we are talking about the very matlab basics, but as I am dealing with really big data structures, I would like to receive some support.
I have the following matrix, as shown in 1:
I would like to reshape it to be as in 2, and back again to point 1.
Thanks in advance

Accepted Answer

Matt J
Matt J on 27 Apr 2023
Edited: Matt J on 27 Apr 2023
You can use blkColon in this FEX download,
>> X
X(:,:,1) =
1 10 19
2 11 20
3 12 21
X(:,:,2) =
4 13 22
5 14 23
6 15 24
X(:,:,3) =
7 16 25
8 17 26
9 18 27
>> Y=blkColon(X,[3,3])
Y =
1 10 19
2 11 20
3 12 21
4 13 22
5 14 23
6 15 24
7 16 25
8 17 26
9 18 27
  2 Comments
Enzo
Enzo on 28 Apr 2023
@Matt J thanks for your precious help. I am gonna accept your answer has it worked perfectly. Do you have any suggestion on how to reshape the Y matrix again into the X matrix shape?

Sign in to comment.

More Answers (1)

chicken vector
chicken vector on 27 Apr 2023
Edited: chicken vector on 27 Apr 2023
A = reshape(1:3^3,3^2,[])
A = 9×3
1 10 19 2 11 20 3 12 21 4 13 22 5 14 23 6 15 24 7 16 25 8 17 26 9 18 27
B = permute(reshape(A',[],3,3),[2,1,3])
B =
B(:,:,1) = 1 10 19 2 11 20 3 12 21 B(:,:,2) = 4 13 22 5 14 23 6 15 24 B(:,:,3) = 7 16 25 8 17 26 9 18 27
A = reshape(B,[],3)
A = 9×3
1 4 7 2 5 8 3 6 9 10 13 16 11 14 17 12 15 18 19 22 25 20 23 26 21 24 27

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!