相关疑难解决方法(0)

Julia:将数组向量转换为任意维度的数组

使用计时测试,我发现它的更高性能的成长Vector{Array{Float64}}使用对象push!比它只需使用一个Array{Float64}对象,要么hcatvcat.但是,在计算完成后,我需要将结果对象更改Array{Float64}为进一步分析.有没有一种方法可以工作,无论尺寸?例如,如果我生成VectorArrays可通过

u =  [1 2 3 4
      1 3 3 4
      1 5 6 3
      5 2 3 1]
uFull = Vector{Array{Int}}(0)
push!(uFull,u)
for i = 1:10000
  push!(uFull,u)
end
Run Code Online (Sandbox Code Playgroud)

我可以像这样进行转换:

fill = Array{Int}(size(uFull)...,size(u)...)
for i in eachindex(uFull)
  fill[i,:,:] = uFull[i]
end
Run Code Online (Sandbox Code Playgroud)

但请注意,这要求我知道数组是矩阵(二维).如果它是三维的,我需要另一个:,所以这对任意尺寸都不起作用.

请注意,我还需要一个"逆变换"的形式(除了第一个由完整数组的最后一个索引索引)在任意维度,我目前有

filla = Vector{Array{Int}}(size(fill)[end])
  for i in 1:size(fill)[end]
filla[i] = fill[:,:,i]' 
end
Run Code Online (Sandbox Code Playgroud)

我假设第一次转换的方法也可能解决第二次转换.

arrays type-conversion julia

5
推荐指数
2
解决办法
816
查看次数

标签 统计

arrays ×1

julia ×1

type-conversion ×1