特定の時間に一番近いインデックスを取得する方法【MATLAB】

Nです.

普段解析で取り扱うデータは99.9%ぐらいは離散データだと思います.その時に,ある時刻のデータがほしいと思っても,サンプリング間隔の関係でちょうどその時間のデータがないことはよくあります.

そこで今回は欲しい時間に一番近いインデックスを取り出す方法を紹介します.また,時間でなくて計測値に対しても同じようなことはできます.

MATLABを例に出しますが他言語でも同じようにできると思います.

手順は以下のような感じです.

1. 差の絶対値をとる.

2. 最小値を探す.

この2ステップです.具体的には以下のようになります.

% 一番近い時間のインデックスの取得
time_wanted = 5.04;% 
sf = 10e-2; % sampling frequency
time = 0:sf:10;
[~,idx]=min(abs(time-time_wanted));

% 確認
time(idx);
% 例えばその時間の計測値がほしいときには
% data(idx); % みたいな使い方もできます.

もし,何かの役に立てば幸いです.

コメント

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