cer*_*ony 4 multidimensional-array julia
我有一个类型的数组,Array{Float64,2}但它是一个1列的数组,我无法将其传递给期望单列数组类型的函数Array{Float64,1}.我真的不明白是什么2意思或如何解决我的问题,我无法通过搜索任何文档来弄明白.
在Array{Float64,2},2是数组中的维数.既然你说它是"它是一个1列的数组",你可能有一些二维的东西,有一行或一列,即
julia> c = rand(1,3)
1x3 Array{Float64,2}:
0.190944 0.928697 0.251519
julia> d = rand(3,1)
3x1 Array{Float64,2}:
0.0818493
0.0342291
0.58341
Run Code Online (Sandbox Code Playgroud)
要将其转换为一维数组,您可以手动切片或使用squeeze,如您所愿:
julia> c[1,:]
3-element Array{Float64,1}:
0.190944
0.928697
0.251519
julia> squeeze(d,2)
3-element Array{Float64,1}:
0.0818493
0.0342291
0.58341
Run Code Online (Sandbox Code Playgroud)
任何一种方法都应该给你一些类型Array{Float64,1}.
如评论中所述,另一种方法是使用reshape,例如(使用不同的随机c):
julia> reshape(c, length(c))
3-element Array{Float64,1}:
0.680653
0.0573147
0.607054
Run Code Online (Sandbox Code Playgroud)
这样做的优点和缺点是不关心你是否有一个1xN或Nx1的阵列.