解析区間の指定方法について
25 ビュー (過去 30 日間)
古いコメントを表示
下に解析対象のサンプルデータをお示しします.
ある物体の加速度を示しており,
加速後,だいたい一定の速度でしばらく進み,減速するような波形となっています.
速度がほぼ一定の区間を指定する為に,
開始点:最大の加速度の20%の加速度となった点
終了点:最小の加速度(減速時)の20%に達した点
の条件でデータの範囲を指定したいと思っております.
だいたい下記の赤線グラフの水色線で示した範囲になります.
方法ご教授いただければ幸いです.よろしくお願いいたします.
load('data.mat');
plot(a)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1371029/image.jpeg)
0 件のコメント
採用された回答
Kojiro Saito
2023 年 5 月 1 日
5 件のコメント
Kojiro Saito
2023 年 5 月 2 日
編集済み: Kojiro Saito
2023 年 5 月 2 日
>diff(b <= max(b)*0.2)での出力結果を見ますと,0から1に切り替わる点(1から0の点ではなく)のみfind関数で発見できれば,上記の指定ができそうかと思ったのですが,そのようなことは可能でしたでしょうか?
diffの結果をプロットしてみると
plot(diff(b <= max(b)*0.2))
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1371999/image.jpeg)
加速度が最大値の20%より大きいところから20%以下になるところで-1、20%以下から20%より大きくなるところで+1の結果になっています。この+1を見つける方法で検出できませんか。
なお、diff関数は要素2マイナス要素1が要素1に格納されるので、おっしゃるとおり1フレームずれるので+1をする必要がありました。
xStart = find(diff(b <= max(b)*0.2) == 1, 1) +1
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!