줄리아의 순열차원 함수와 그 응용 permutedims
개요
줄리아의 내장 함수 permutedims
는 어떻게 보면 전치행렬의 일반화로써, 다차원 배열의 차원을 다루는데 유용하다.
코드
텐서의 차원 전환
julia> A = reshape(Vector(1:8), (2,2,2))
2×2×2 Array{Int64, 3}:
[:, :, 1] =
1 3
2 4
[:, :, 2] =
5 7
6 8
julia> B = permutedims(A, (3, 1, 2))
2×2×2 Array{Int64, 3}:
[:, :, 1] =
1 2
5 6
[:, :, 2] =
3 4
7 8
텐서는 프로그래밍적으로 유용하지만 그만큼 헷갈린다. 특히 이미지에 관련된 딥러닝 태스크에 이 함수는 아주 요긴하게 쓰일 수 있다.
문자열 행렬의 전치행렬
julia> A = ["a" "b" "c"
"d" "e" "f"]
2×3 Matrix{String}:
"a" "b" "c"
"d" "e" "f"
julia> A'
ERROR: MethodError: no method matching adjoint(::String)
julia> permutedims(A)
3×2 Matrix{String}:
"a" "d"
"b" "e"
"c" "f"
보다시피 문자열의 행렬은 '
을 통해서 행렬 전치를 취할 수 없지만, permutedims
를 사용해서 사실상 행렬 전치와 같은 기능을 사용할 수 있다1.
환경
- OS: Windows
- julia: v1.11.1