ジュリアで配列の特定の位置を関数で参照する方法
概要
複数の配列が与えられた時、例えば、それぞれの配列の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