logo

ジュリアで配列の特定の位置を関数で参照する方法 📂ジュリア

ジュリアで配列の特定の位置を関数で参照する方法

概要

複数の配列が与えられた時、例えば、それぞれの配列の3番目の要素にアクセスしたいという状況は意外と多い。Juliaでは、getindex()関数のブロードキャストを通じてこれを実装できる。

コード

getindex.()

julia> seq_ = [collect(1:k:100) for k in 1:10]
10-element Vector{Vector{Int64}}:
 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10  …  91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
 [1, 3, 5, 7, 9, 11, 13, 15, 17, 19  …  81, 83, 85, 87, 89, 91, 93, 95, 97, 99]
 [1, 4, 7, 10, 13, 16, 19, 22, 25, 28  …  73, 76, 79, 82, 85, 88, 91, 94, 97, 100]
 [1, 5, 9, 13, 17, 21, 25, 29, 33, 37  …  61, 65, 69, 73, 77, 81, 85, 89, 93, 97]
 [1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76, 81, 86, 91, 96]
 [1, 7, 13, 19, 25, 31, 37, 43, 49, 55, 61, 67, 73, 79, 85, 91, 97]
 [1, 8, 15, 22, 29, 36, 43, 50, 57, 64, 71, 78, 85, 92, 99]
 [1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97]
 [1, 10, 19, 28, 37, 46, 55, 64, 73, 82, 91, 100]
 [1, 11, 21, 31, 41, 51, 61, 71, 81, 91]

julia> getindex.(seq_, 3)
10-element Vector{Int64}:
  3
  5
  7
  9
 11
 13
 15
 17
 19
 21

first(), last()

first()getindex(, 1)と同じだが、last()getindex(, end)と同じ表現が存在しないため、特別な関数と言える。プログラムが繰り返される中で最後にある結果が必要な場合が多く、その最後の要素のインデックスは様々な場合が多いため、last()関数は知っておくべきだ。

julia> first.(seq_)
10-element Vector{Int64}:
 1
 1
 1
 1
 1
 1
 1
 1
 1
 1

julia> last.(seq_)
10-element Vector{Int64}:
 100
  99
 100
  97
  96
  97
  99
  97
 100
  91

環境

  • OS: Windows
  • julia: v1.9.0