Array
から条件を満たすインデックスを取得する時は、findall
を使う。
julia> ar = collect(1:10).^2
10-element Array{Int64,1}:
1
4
9
16
25
36
49
64
81
100
julia> findall(x -> x % 2 == 0, ar)
5-element Array{Int64,1}:
2
4
6
8
10
2次元の場合
julia> ar = Bool[0 0 0 0 0;
0 1 0 0 0;
0 0 0 1 0;
0 0 0 0 0;
0 0 0 0 0]
5×5 Array{Bool,2}:
0 0 0 0 0
0 1 0 0 0
0 0 0 1 0
0 0 0 0 0
0 0 0 0 0
julia> findall(ar)
2-element Array{CartesianIndex{2},1}:
CartesianIndex(2, 2)
CartesianIndex(3, 4)
getindex
と組み合わせると良い。
julia> getindex.(findall(ar), [1 2])
2×2 Array{Int64,2}:
2 2
3 4