我有一个多维数组Array{Array{Float64,3},1}
的数组,我想要的是一个4维数组Array{Float64,4}
。
我已经查看了其他回复
但是cat
和reshape
的组合似乎并不能解决问题。
必须有一种惯用的方式……这是什么?
答案 0 :(得分:3)
您的答案是正确且通用的。但是请注意,假设内部数组具有相同的大小(而不仅是相同的维数),还有以下更快的方法:
julia> matrix = [rand(1,2,3) for _ in 1:4]; # some test data
julia> @btime a = cat($matrix..., dims=4); # your solution
11.519 μs (80 allocations: 3.83 KiB)
julia> @btime b = reshape(collect(Iterators.flatten($matrix)), (1,2,3,4)); # much faster solution
611.960 ns (55 allocations: 2.27 KiB)
julia> a == b
true
答案 1 :(得分:0)
很抱歉打扰您,我在发布后很快就知道了
julia> typeof(matrix)
Array{Array{Float64,3},1}
julia> typeof(matrix[1])
Array{Float64,3}
julia> typeof(cat(matrix...,dims=4))
Array{Float64,4}