朱莉娅多维数组类型?

时间:2016-04-10 00:19:26

标签: multidimensional-array julia

我有一个Array{Float64,2}类型的数组,但它是一列1列,我无法将其传递给期望单列数组的函数类型为Array{Float64,1}。我真的不明白2的含义或如何解决我的问题,而且我无法通过搜索任何文档来解决这个问题。

1 个答案:

答案 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的形状数组。