考虑数组数组
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 ...)'
julia> hcat(a...)'
2×3 Adjoint{Float64,Array{Float64,2}}:
1.0 2.0 3.0
4.0 5.0 6.0
这里的类型是Adjoint {Float64,Array {Float64,2}}。但是对于我的问题,我只需要Array {Float64,2}。 经过一些计算,我需要将其转换回数组数组。 我想知道,什么是最好的方法。
谢谢。
答案 0 :(得分:2)
您可以这样做:
julia> reduce(vcat, transpose.(a))
2×3 Array{Float64,2}:
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]
答案 1 :(得分:1)
您在寻找vcat(a'...)
符合您的需求吗?