Есть ли способ вращать 3D-массивы в Джулии?

Я пытаюсь повернуть 3D-массив в julia, как если бы он представлял физический объект в 3D-пространстве. По сути, я хочу знать, есть ли способ повернуть массив с шагом 90 градусов по осям x, y и/или z.

В 2D это было бы примерно так, если бы я вращал против часовой стрелки...

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

Я бы хотел, чтобы та же логика применялась и в 3D.

Любая помощь приветствуется.

Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
3
0
379
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для двумерных матриц у вас есть такие функции, как rotl90, rotr90 и rot180. Их можно комбинировать с mapslices, чтобы получить желаемый эффект. В примере ниже показан поворот по измерениям 1 и 2 для каждого разреза массива в измерении 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

Отличный ответ, хотя я понятия не имею, для чего вам это нужно.

Georgery 21.12.2020 12:12

Великолепен не ответ, а гибкость языка Julia!

Przemyslaw Szufel 21.12.2020 13:34

Другие вопросы по теме