Julia の Base.findall は、コレクションの中から条件に合う要素を抽出するメソッドです。
findall(A)
findall(f::Function, A)
Base.findall メソッドの使用例を以下に示す。
Base.findall メソッドを使うことで、Core.Tuple に含まれる true の要素だけを抽出することができる。
julia> t = (true, false, true)
(true, false, true)
julia> findall(t)
2-element Vector{Int64}:
1
3
Base.findall メソッドを使うことで、Core.Tuple に含まれる要素のうち、引数に渡した関数の戻り値が true になる要素だけを抽出することができる。
julia> t = (5, 6, 7, 8)
(5, 6, 7, 8)
julia> findall(isodd, t)
2-element Vector{Int64}:
1
3
julia> findall(iseven, t)
2-element Vector{Int64}:
2
4
Base.findall メソッドを使うことで、Core.NamedTuple に含まれる true の要素だけを抽出することができる。
julia> nt = (a = true, b = false)
(a = true, b = false)
julia> findall(nt)
1-element Vector{Symbol}:
:a
Base.findall メソッドを使うことで、Core.NamedTuple に含まれる要素のうち、引数に渡した関数の戻り値が true になる要素だけを抽出することができる。
julia> nt = (a = 1, b = 2, c = 3, d = 4)
(a = 1, b = 2, c = 3, d = 4)
julia> findall(isodd, nt)
2-element Vector{Symbol}:
:a
:c
julia> findall(iseven, nt)
2-element Vector{Symbol}:
:b
:d
Base.findall メソッドを使うことで、Base.Dict に含まれる要素のうち、引数に渡した関数の戻り値が true になる要素だけを抽出することができる。
julia> d = Dict(:a => -1, :b => 0, :c => 1)
Dict{Symbol, Int64} with 3 entries:
:a => -1
:b => 0
:c => 1
julia> findall(x -> x >= 0, d)
2-element Vector{Symbol}:
:b
:c
Base.findall メソッドを使うことで、Base.Matrix に含まれる true の要素だけを抽出することができる。
julia> m = [true false;true true]
2×2 Matrix{Bool}:
1 0
1 1
julia> findall(m)
3-element Vector{CartesianIndex{2}}:
CartesianIndex(1, 1)
CartesianIndex(2, 1)
CartesianIndex(2, 2)
Base.findall メソッドを使うことで、Base.Matrix に含まれる要素のうち、引数に渡した関数の戻り値が true になる要素だけを抽出することができる。
julia> m = [1 2;3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> findall(isodd, m)
2-element Vector{CartesianIndex{2}}:
CartesianIndex(1, 1)
CartesianIndex(2, 1)
julia> findall(iseven, m)
2-element Vector{CartesianIndex{2}}:
CartesianIndex(1, 2)
CartesianIndex(2, 2)
Base.findall メソッドを使うことで、Base.Vector に含まれる true の要素だけを抽出することができる。
julia> v = [true, false, true, true]
4-element Vector{Bool}:
1
0
1
1
julia> findall(v)
3-element Vector{Int64}:
1
3
4
Base.findall メソッドを使うことで、Base.Vector に含まれる要素のうち、引数に渡した関数の戻り値が true になる要素だけを抽出することができる。
julia> v = [1, 2, 3, 4]
4-element Vector{Int64}:
1
2
3
4
julia> findall(isodd, v)
2-element Vector{Int64}:
1
3
julia> findall(iseven, v)
2-element Vector{Int64}:
2
4
JuliaLang.org contributors 2023. Julia Documentation