當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Julia permutedims用法及代碼示例


用法一

permutedims(A::AbstractArray, perm)

置換數組 A 的維度。 perm 是一個向量或長度為 ndims(A) 的元組,指定排列。

另見 permutedims! PermutedDimsArray transpose invperm

例子

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> permutedims(A, (3, 2, 1))
2×2×2 Array{Int64, 3}:
[:, :, 1] =
 1  3
 5  7

[:, :, 2] =
 2  4
 6  8

julia> B = randn(5, 7, 11, 13);

julia> perm = [4,1,3,2];

julia> size(permutedims(B, perm))
(13, 5, 11, 7)

julia> size(B)[perm] == ans
true

用法二

permutedims(m::AbstractMatrix)

通過在矩陣的對角線上翻轉元素來置換矩陣 m 的維度。與 LinearAlgebra transpose 的不同之處在於該操作不是遞歸的。

例子

julia> a = [1 2; 3 4];

julia> b = [5 6; 7 8];

julia> c = [9 10; 11 12];

julia> d = [13 14; 15 16];

julia> X = [[a] [b]; [c] [d]]
2×2 Matrix{Matrix{Int64}}:
 [1 2; 3 4]     [5 6; 7 8]
 [9 10; 11 12]  [13 14; 15 16]

julia> permutedims(X)
2×2 Matrix{Matrix{Int64}}:
 [1 2; 3 4]  [9 10; 11 12]
 [5 6; 7 8]  [13 14; 15 16]

julia> transpose(X)
2×2 transpose(::Matrix{Matrix{Int64}}) with eltype Transpose{Int64, Matrix{Int64}}:
 [1 3; 2 4]  [9 11; 10 12]
 [5 7; 6 8]  [13 15; 14 16]

用法三

permutedims(v::AbstractVector)

將向量 v 重塑為 1 × length(v) 行矩陣。與 LinearAlgebra transpose 的不同之處在於該操作不是遞歸的。

例子

julia> permutedims([1, 2, 3, 4])
1×4 Matrix{Int64}:
 1  2  3  4

julia> V = [[[1 2; 3 4]]; [[5 6; 7 8]]]
2-element Vector{Matrix{Int64}}:
 [1 2; 3 4]
 [5 6; 7 8]

julia> permutedims(V)
1×2 Matrix{Matrix{Int64}}:
 [1 2; 3 4]  [5 6; 7 8]

julia> transpose(V)
1×2 transpose(::Vector{Matrix{Int64}}) with eltype Transpose{Int64, Matrix{Int64}}:
 [1 3; 2 4]  [5 7; 6 8]

相關用法


注:本文由純淨天空篩選整理自julialang.org 大神的英文原創作品 Base.permutedims — Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。