初始化阵列数组以便即时构建

时间:2017-11-07 19:45:49

标签: arrays julia

如何在julia中声明包含数组的数组?

我有a=Int32[]创建了一个空的Int32数组(当然),但是我想稍后构建像

这样的东西。
if ...
    push!(a, [r,s]) # (*)
...

其中rs是整数。我尝试a=Int32[Int32[]]但是在做(*)时它不起作用。我没有a的具体形状,所以我需要声明它没有这个限制。

1 个答案:

答案 0 :(得分:9)

Int32[]创建一个Vector{Int32},其Vector元素类型为Int32。您需要Vector元素类型Vector{Int32},因此您可以使用Vector{Vector{Int32}}()Vector{Int32}[]。请注意,Vector{T}Array{T,1}的别名,也就是元素类型Array和1维的T,所以当Julia打印出类型时,它就赢了使用Vector一词。

julia> v=Vector{Vector{Int32}}()
0-element Array{Array{Int32,1},1}

julia> push!(v,[1,2,3])
1-element Array{Array{Int32,1},1}:
 Int32[1, 2, 3]

julia> x=Vector{Int32}[]
0-element Array{Array{Int32,1},1}

julia> push!(x,[4,5,6])
1-element Array{Array{Int32,1},1}:
 Int32[4, 5, 6]