【FFT】MATLAB、Pythonで株価予測 その34【IFFT⑬】

【FFT】MATLAB、Pythonで株価予測 その34【IFFT⑬】 株価予測
【FFT】MATLAB、Pythonで株価予測 その34【IFFT⑬】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/stock-predict-matlabpython-backnumber/

はじめに

前回は、MATLABで超簡易バンドパスフィルタ実施した。
想定通りの3Hzだけの抽出はできたが、3[Hz]と-3[Hz]以外を0にしてる部分のコードが妙。
ここは論理インデックス検索という手法を使っている。

よって、今回はこれら評価式を使った検索手法について説明。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

論理インデックス検索と線形インデックス検索

太郎くん
太郎くん

で、今回は「論理インデックス検索」ってのを説明してくれるんだっけか?

フクさん
フクさん

それに加えて「線形インデックス検索」ってのも説明するつもりだ。

太郎くん
太郎くん

また、余計なものが増えた・・・。

フクさん
フクさん

折角だから覚えておきなって。
便利だし、使い方自体はそっくりだから。

太郎くん
太郎くん

まぁ似てるんだったらついでに覚えてしまった方が良いか・・・。

論理インデックス検索と線形インデックス検索の実施コードとその結果

フクさん
フクさん

これはもうコードとその結果を見た方が早いだろう。

% 数列生成
>> A=[11:19]
A =
    11    12    13    14    15    16    17    18    19

% 3x3の正方行列化
>> A=reshape(A,3,3)
A =
    11    14    17
    12    15    18
    13    16    19

% 線形インデックス検索
>> A([1 4 5])
ans =
    11    14    15

% 論理インデックス作成
>> B=11<A & A<16
B =
     0     1     0
     1     1     0
     1     0     0

% 論理インデックス検索
>> A(B)
ans =
    12
    13
    14
    15

% 論理インデックス検索
>> A([false true false;false true false; false true false])

ans =

    14
    15
    16
太郎くん
太郎くん

ほう!
こんなことが可能なのか!

フクさん
フクさん

線形インデックス検索の方はC言語の配列に対する添え字と考え方は一緒だ。
ただ、C言語の添え字は1個だけど、いわゆるスカラーだけしか設定できないのに対し、
MATLABではスカラー以外にベクトルも添え字として設定できるってイメージだな。

太郎くん
太郎くん

論理インデックス検索は、1かtrueのところだけを抜き出してくれるって感じだね。

フクさん
フクさん

そして、これらの検索は読み出しだけでなく、書き込みもできる
この書き込みができることを利用したのが前回のコードのこれになる。

Fw_Filter( k< -High | (-Low < k & k <= 0) | (0 <= k & k < Low) | High < k)=0;
太郎くん
太郎くん

最初は何事かと思ったけど、分かってしまえば確かに便利機能だ。

太郎くん
太郎くん

ちなみにPythonも同じことできるの?

フクさん
フクさん

ふむ。
じゃー、次回はPython側に於ける線形インデックス検索、論理インデックス検索の話としよう。

まとめ

フクさん
フクさん

まとめだよ。

  • MATLABのインデックス検索には線形インデックス検索と論理インデックス検索がある。
  • 線形インデックス検索はC言語の配列の添え字の考え方と一緒だが、添え字に設定できる値がベクトルにできる。
    • C言語はスカラーのみ。
  • 論理インデックス検索は渡すベクトルの1かtrueのところだけが参照できる。
  • それぞれ書き換えも可能。

バックナンバーはこちら。

コメント

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