Julia中有旋转3D阵列的方法吗



我正试图在julia中旋转一个三维数组,就好像它代表三维空间中的物理对象一样。从本质上讲,我想知道是否有一种方法可以沿着x轴、y轴和/或z轴将阵列旋转90度。

在2D中,如果我逆时针旋转,它会是这样的。。。

1 2 3           3 6 9
4 5 6   ----->  2 5 8
7 8 9           1 4 7

我希望同样的逻辑也适用于3D。

感谢您的帮助。

对于二维矩阵,有rotl90rotr90rot180等函数。将它们与CCD_ 4结合使用,可以达到预期的效果。下面的示例是针对维度3中的阵列的每个切割在维度12上的旋转。

julia> A=collect(reshape(1:27,3,3,3))
3×3×3 Array{Int64,3}:
[:, :, 1] =
1  4  7
2  5  8
3  6  9
[:, :, 2] =
10  13  16
11  14  17
12  15  18
[:, :, 3] =
19  22  25
20  23  26
21  24  27

julia> mapslices(rotr90,A,dims=[1,2])
3×3×3 Array{Int64,3}:
[:, :, 1] =
3  2  1
6  5  4
9  8  7
[:, :, 2] =
12  11  10
15  14  13
18  17  16
[:, :, 3] =
21  20  19
24  23  22
27  26  25

最新更新