gpt4 book ai didi

arrays - 有没有办法在 Julia 中旋转 3D 数组?

转载 作者:行者123 更新时间:2023-12-04 16:25:27 26 4
gpt4 key购买 nike

我正在尝试在 julia 中旋转 3D 数组,就好像它代表 3D 空间中的物理对象一样。本质上,我想知道是否有一种方法可以沿 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 等函数。这些可以与 mapslices 结合以获得所需的效果。例如下面的例子是在维度 12 上对维度 3 中的每个数组切割进行旋转。

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

关于arrays - 有没有办法在 Julia 中旋转 3D 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65386114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com