最大値前後の平均値の算出について
8 ビュー (過去 30 日間)
古いコメントを表示
採用された回答
Kenta
2020 年 5 月 27 日
最大値はmaxという関数で出せます。また、その前後ということなので、
[maxvalue, index]=max(A);
という風にかくと、Aのあるインデックス(場所のようなもの)も同時に得られるので、そのインデックスから0.5秒前後分まで取り出し、最終的にmean関数で平均を出せます。
たとえば、Aの1ステップが0.1秒だと、
[maxvalue, index]=max(A);
B=A(index-2:index+2);
mean(B)
のようにかけます。ただ、お持ちのデータにあわせて適宜変更する必要があります。
2 件のコメント
Kenta
2020 年 5 月 28 日
ご返信ありがとうございます。役に立ったようでうれしいです。
findpeaks関数を使って、ピークを検出すれば良いと思います。
2番目に大きな値と単にすると、最大のピークのすぐ横の値(山の少し左右の点)が検出されてしまってうまく行かないと思います。
ピークを取るために移動平均にしたり、適宜パラメータを調整したりする必要はあるかと思いますが、基本的にはfindpeak関数で大丈夫と思います。また問題があれば、ご質問ください。よろしくお願いいたします。
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で 記述統計 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!