logo

줄리아에서 배열의 특정 위치를 함수로 참조하는 법 📂줄리아

줄리아에서 배열의 특정 위치를 함수로 참조하는 법

개요

여러 개의 배열이 주어져 있을 때 이들의 특정 원소, 예를 들어 각각의 배열마다 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