Arrays 将数组{Array{Float64},1}转换为数组{Float64,2}的最佳方法,反之亦然

Arrays 将数组{Array{Float64},1}转换为数组{Float64,2}的最佳方法,反之亦然,arrays,julia,Arrays,Julia,考虑一组数组 julia> a 2-element Array{Array{Float64,1},1}: [1.0, 2.0, 3.0] [4.0, 5.0, 6.0] 我想将a转换为数组{Float64,2} 2×3 Array{Float64,2}: 1.0 2.0 3.0 4.0 5.0 6.0 像这样 我发现有一种溶液hcat(a…) 这里的类型是伴随{Float64,数组{Float64,2}。但是对于我的问题,我只需要数组{Float64,2}。 经过一些计

考虑一组数组

julia> a
2-element Array{Array{Float64,1},1}:
 [1.0, 2.0, 3.0]
 [4.0, 5.0, 6.0]
我想将a转换为数组{Float64,2}

2×3 Array{Float64,2}:
 1.0  2.0  3.0
 4.0  5.0  6.0
像这样

我发现有一种溶液hcat(a…)

这里的类型是伴随{Float64,数组{Float64,2}。但是对于我的问题,我只需要数组{Float64,2}。 经过一些计算,我需要把它转换成数组。 我想知道,做这件事最好的方法是什么


提前感谢。

您正在寻找
vcat(a'…)
它可以满足您的需要。

您可以:

julia> reduce(vcat, transpose.(a))
2×3 Array{Float64,2}:
 1.0  2.0  3.0
 4.0  5.0  6.0
或例如(这不会检查向量的尺寸是否匹配)

返回的方法更简单:

julia> b = reduce(vcat, transpose.(a))
2×3 Array{Float64,2}:
 1.0  2.0  3.0
 4.0  5.0  6.0

julia> copy.(eachrow(b))
2-element Array{Array{Float64,1},1}:
 [1.0, 2.0, 3.0]
 [4.0, 5.0, 6.0]

julia> [v[i] for v in a, i in axes(a[1], 1)]
2×3 Array{Float64,2}:
 1.0  2.0  3.0
 4.0  5.0  6.0
julia> b = reduce(vcat, transpose.(a))
2×3 Array{Float64,2}:
 1.0  2.0  3.0
 4.0  5.0  6.0

julia> copy.(eachrow(b))
2-element Array{Array{Float64,1},1}:
 [1.0, 2.0, 3.0]
 [4.0, 5.0, 6.0]
julia> [b[i, :] for i in axes(b, 1)]
2-element Array{Array{Float64,1},1}:
 [1.0, 2.0, 3.0]
 [4.0, 5.0, 6.0]