julia で整数の Array に、任意の整数が含まれるか調べる方法
julia で整数の Array に、任意の整数が含まれるか調べてみます。
- in を使う方法
- ∈ (\in
) を使う方法 - == と sum を使う方法
思いつくのは、この位でしょうか。
in を使う方法
julia> A = [1 2 ; 3 4]
2×2 Array{Int64,2}:
1 2
3 4
julia> 1 in A
true
julia> in(1, A)
true
julia> in(A, 1)
false
julia> in.(1,A)
2×2 BitArray{2}:
true false
false false
Int64 の "1" の代り 1x1 の Array であるところの [1] を使うと上手くできません。
julia> x = [1]
1-element Array{Int64,1}:
1
julia> x in A
false
julia> x[1] in A
true
∈ (\in) を使う方法
"\in" と入力して直後にタブキーを押すと変換されます。使い方は in 同じです。
julia> 1∈A true julia> A∈1 false
== と sum を使う方法
ちょっと邪道かもしれませんが、出来ないことはありません。ただし true, false の代わりに 1以上 , 0 が出力になります。ブリーアン型の Array になる時は、この方法が使えます。
julia> sum( true, false) ERROR: MethodError: objects of type Bool are not callable julia> sum( [true, false]) 1 julia> sum( [true, false, true]) 2
というのを使います。"1.==A" ではなく、"1 .=A" です。1の直後にスペースが必要です。
julia> sum(1 .==A) 2