我有一个Array{Float64,2}
类型的数组,但它是一列1列,我无法将其传递给期望单列数组的函数类型为Array{Float64,1}
。我真的不明白2
的含义或如何解决我的问题,而且我无法通过搜索任何文档来解决这个问题。
答案 0 :(得分:5)
在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
要将其转换为1维数组,您可以手动切片阵列或使用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
任何一种方法都应该为您提供Array{Float64,1}
类型的东西。
如评论中所述,另一种方法是使用reshape
,例如(使用不同的随机c
):
julia> reshape(c, length(c))
3-element Array{Float64,1}:
0.680653
0.0573147
0.607054
这样做的好处和缺点是不关心你是否有1xN或Nx1的形状数组。