什么permutedims()
调用多维数组时怎么办?
从它的名字来看,它显然与数组的维度有关。但是,在运行下面的代码时,输出是意外且不清楚的。
A = Array{Int64}(undef, 100,100,100)
B = permutedims(A, (1,2,3))
println(A == B)
输出 :
`true`
那么它是否创建了原始数组的副本?传递的元组有什么用?
最佳答案
docs Julia 有时没有对给定主题的完整解释。permutedims(A::AbstractArray, perm)
perms
是一个元组,指定 A 的维度的新顺序,其中 1 对应于第一个维度(行),2 对应于第二个维度(列),3 对应于页面,依此类推,即此函数将返回其维数根据指定的 perms
的数组.
问题中的代码中发生的事情是通过传递元组 (1,2,3)
,我们告诉 Julia 将 A 的第一个暗点放在 B 的第一个暗点的位置,将第二个点放在第二个的位置,依此类推。这基本上创建了数组 A
的副本.
使用案例
A = ones(10,20,30) # Creates an array full of 1 of the size (10,20,30)
B = permutedims(A, (3,1,2))
println(A == B)
println(size(B))
输出
false
(30, 10, 20)
关于julia - Julia 中 permutedims 的功能不清楚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59811898/