줄리아에서 배열의 특정 위치를 함수로 참조하는 법
개요
여러 개의 배열이 주어져 있을 때 이들의 특정 원소, 예를 들어 각각의 배열마다 3번째 원소에 접근하고 싶은 상황이 생각보다 많다. 줄리아에서는 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