一维数组

一维数组通常称为Vector

  1. julia> a=[1,2,3] # 生成一个数组,其中的元素可以用undef表示不初始化
  2. 3-element Vector{Int64}:
  3. 1
  4. 2
  5. 3
  6. julia> a[1] # 通过下标访问
  7. 1
  8. julia> a[1:2] # 通过范围访问
  9. 2-element Vector{Int64}:
  10. 1
  11. 2
  12. julia> a[1]=3 # 通过下标修改
  13. 3
  14. julia> length(a) # 查看长度
  15. 3
  16. julia> a=[0]
  17. 1-element Vector{Int64}:
  18. 0
  19. julia> push!(a,1) # 在末尾添加
  20. 2-element Vector{Int64}:
  21. 0
  22. 1
  23. julia> last(a) # 查看末尾
  24. 1
  25. julia> pop!(a) # 去除末尾
  26. 1
  27. julia> a
  28. 1-element Vector{Int64}:
  29. 0
  30. julia> pushfirst!(a,-1) # 在开头添加
  31. 2-element Vector{Int64}:
  32. -1
  33. 0
  34. julia> first(a) # 查看开头
  35. -1
  36. julia> popfirst!(a) # 去除开头
  37. -1
  38. julia> a
  39. 1-element Vector{Int64}:
  40. 0
  41. julia> a=[1,2,3]
  42. 3-element Vector{Int64}:
  43. 1
  44. 2
  45. 3
  46. julia> fill!(a,0) # 将a中元素填满0
  47. 3-element Vector{Int64}:
  48. 0
  49. 0
  50. 0

其它数组生成方式:

julia> zeros(Int,5) # 生成5个整型的0
5-element Vector{Int64}:
 0
 0
 0
 0
 0

julia> ones(Int,5) # 生成5个整型的1
5-element Vector{Int64}:
 1
 1
 1
 1
 1

julia> collect(1:4) # 上一章所述类型均可以用collect转化为一维数组
4-element Vector{Int64}:
 1
 2
 3
 4

julia> collect("猫"=>0)
2-element Vector{Union{Int64, String}}:
  "猫"
 0

多维数组

数组称为Array

julia> Vector # 一维数组是数组的特例
Vector{T} where T (alias for Array{T, 1} where T)

julia> Array{Int,3}(undef,2,2,2) # 生成一个未初始化的2x2x2数组
2×2×2 Array{Int64, 3}:
[:, :, 1] =
 272741312  284121296
 272741312  284121296

[:, :, 2] =
 272755984  287668496
 272755984  426754624

julia> v=[1 2 3;4 5 6;7 8 9] # 快速生成二维数组
3×3 Matrix{Int64}:
 1  2  3
 4  5  6
 7  8  9

julia> Matrix # 二维数组是数组的特例
Matrix{T} where T (alias for Array{T, 2} where T)

julia> v[3,2] # 通过下标访问
8

julia> v[2:3,2:3] # 通过范围访问
2×2 Matrix{Int64}:
 5  6
 8  9

julia> v[1,1]=0 # 通过下标修改
0

注意:数组的数组与多维数组是不同的