在Julia中创建一个数组数组

时间:2015-06-03 17:21:33

标签: arrays data-structures julia

我正在尝试在Julia中创建一个特殊类型的数组数组。

例如,我想创建一个保存整数值列表(数组)的列表。

我需要知道如何:

  1. 初始化数组的(空)列表
  2. 使用append! / push!将特定数据结构的数组(在本例中为整数数组)添加到列表中
  3. 我认为这是一个非常简单的问题(可能会在文档中的某处回答),但我以前的研究让我越来越困惑。

    之间是否存在差异:

    List = Int64[]
    

    List = Array{Int64,1}
    

    这样的事情对我不起作用:

    ListOfList = Int64[Int64]
    ListOfList = Array{Int64[],1}
    ListOfList = Array{Array{Int64,1},1}
    

1 个答案:

答案 0 :(得分:5)

您可以像这样构建数组数组:

# Initialize an array that can contain any values
listOfLists = Any[]

# Push some arrays into the array
push!(listOfLists, [1, 2, 3])
push!(listOfLists, [4, 5])
push!(listOfLists, ["Julia", "rocks"])

# You now have an array containing arrays
listOfLists
# 3-element Array{Any,1}:
#  [1,2,3]                     
#  [4,5]                       
#  ASCIIString["Julia","rocks"]

要回答有关初始化差异的问题,请考虑以下事项。

List = Int64[]
typeof(List)
# Array{Int64,1}

List = Array{Int64,1}
typeof(List)
# DataType

前者实际上是将List初始化为包含整数值的1维数组,而后者将List设置为类型 Array{Int64,1}