julia - Julia 中 permutedims 的功能不清楚

标签 julia

什么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/

相关文章:

julia - 欧几里得距离矩阵之间的最小距离

julia - 在 Julia 中构建非默认构造函数

tuples - 考虑到第二个元素,Julia lang 删除元组列表中的重复项

julia - 如何在 Julia 中执行交叉验证(K 折)?

python - 优化 julia one-liner 使其与 python 一样快

replace - Julia 数据框替换列中的字符

julia - 无法从 HTTP.get 读取文件

Julia:如何使用 DataFrames.jl 中的一个函数创建多列

multithreading - 在 Julia 中使用多线程创建 JuMP 模型

Julia:如何从 Julia 代码执行系统命令?