У меня есть 3D-матрица размером 12,3,43
:
val(:,:,1) =
9.8226 -0.5904 -0.2306
1.9440 -0.4382 -0.4923
0.0519 0.6613 0.6225
1.7321 -0.4460 -0.5919
0.0833 0.6556 0.5539
9.8226 9.8226 9.8226
9.8729 0.5276 58.2741
3.2360 0.0003 0.1039
0.0720 0.9859 0.7473
0.4310 0.0223 0.0298
0.3656 -0.4085 -1.8384
1.0401 -0.4198 0.0106
...
val(:,:,43) =
16.2780 2.1931 0.4593
3.1613 1.3327 0.5388
0.0016 0.1826 0.5900
2.7613 1.1525 0.5731
0.0058 0.2491 0.5666
16.2780 16.2780 16.2780
15.2386 12.3233 -71.4624
6.6782 0.1105 0.0858
0.0098 0.7396 0.7696
1.1318 0.2056 0.0357
-0.7161 0.1360 0.5850
0.7256 0.7578 0.6312
Сначала я хотел бы изменить направление каждой матрицы, вот так, я делаю это, используя matrix(:,:,1).'
:
9.8226 1.9440 0.0519 1.7321 0.0833 9.8226 9.8729 3.2360 0.0720 0.4310 0.3656 1.0401
-0.5904 -0.4382 0.6613 -0.4460 0.6556 9.8226 0.5276 0.0003 0.9859 0.0223 -0.4085 -0.4198
-0.2306 -0.4923 0.6225 -0.5919 0.5539 9.8226 58.2741 0.1039 0.7473 0.0298 -1.8384 0.0106
Затем я хотел бы создать новую трехмерную матрицу, которая собирает верхний ряд из каждой записи, второй и третьей, и т. Д. c. Таким образом, в конце концов у меня будет трехмерная матрица размером 12,43,3
.
Я пробовал permute
и reshape
, но я не могу заставить их работать для выполнения задач такого рода.
Пример маленькой игрушки:
a = [1 11; 2 22; 3 33]
b = [4 43; 5 55; 6 66]
c = [7 76; 8 88; 9 90]
d = [10 101; 11 111; 12 121];
Z = cat(3,a,b,c,d) % The 3D initial matrix
Который должен быть преобразован в
Z_hope(:,:,1) =
1 2 3
4 5 6
7 8 9
10 11 12
Z_hope(:,:,2) =
11 22 33
43 55 66
76 88 90
101 111 121