【入門】各環境で論理インデックスサーチ【数値計算】

【入門】各環境で論理インデックスサーチ【数値計算】 数値計算
【入門】各環境で論理インデックスサーチ【数値計算】

MATLAB、Python、Scilab、Julia比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/

はじめに

の、
MATLAB,Python,Scilab,Julia比較 第3章 その48【インデックスサーチ④】

非極大値抑制をプログラムを作成しているときに出てきた、
線形インデックスサーチと論理インデックスサーチについて説明。
今回は、各ツール、各言語で論理インデックスサーチを確認。

各ツールで論理インデックスサーチ

前回は線形インデックスサーチを各ツール、各言語で実施した。
今回は論理インデックスサーチ。

MATLAB

X =

    0.1000    0.2000    0.3000    0.4000    0.5000

>> 0.4<=X

ans =

     0     0     0     1     1

>> X(0.4<=X)

ans =

    0.4000    0.5000

>> X(0.4<=X)=0

X =

    0.1000    0.2000    0.3000         0         0

Python(NumPy)

>>> X=np.array([0.1, 0.2, 0.3, 0.4, 0.5])
>>> X
array([0.1, 0.2, 0.3, 0.4, 0.5])
>>> 0.4<=X
array([False, False, False,  True,  True])
>>> X[0.4<=X]
array([0.4, 0.5])
>>> X[0.4<=X]=0
>>> X
array([0.1, 0.2, 0.3, 0. , 0. ])

Scilab

--> X=[0.1 0.2 0.3 0.4 0.5]
 X  = 

   0.1   0.2   0.3   0.4   0.5

--> 0.4<=X
 ans  =

  F F F T T

--> X(0.4<=X)
 ans  =

   0.4   0.5

--> X(0.4<=X)=0
 X  = 

   0.1   0.2   0.3   0.   0.

Julia

julia> X=[0.1 0.2 0.3 0.4 0.5]
1×5 Matrix{Float64}:
 0.1  0.2  0.3  0.4  0.5

julia> 0.4.<=X
1×5 BitMatrix:
 0  0  0  1  1

julia> X[0.4.<=X]
2-element Vector{Float64}:
 0.4
 0.5

julia> X[0.4.<=X].=0
2-element view(::Vector{Float64}, [4, 5]) with eltype Float64:
 0.0
 0.0

考察

これも似たり寄ったりって感じになる。
Juliaの”.”演算子によるブロードキャスト指示が入る分、差が出るが。

ベクトル、行列を扱う際は似たようなことするため、
どの環境でも、それを意識した実装になっているのだろう。

まとめ

  • 各ツール、各言語で論理インデックスサーチを実施。
  • 基本的には似たり寄ったりの記述方法。

MATLAB、Python、Scilab、Julia比較ページはこちら

コメント

タイトルとURLをコピーしました