【値の判別】データ内​の値が、閾値より変化​した場合の判別方法

MATLABアプリを作成しています。
下図のようなデータの2列目において、
2行目から3行目にかけて値が変化しているとします。
この2行目という位置を算出することは可能でしょうか。
具体的には、
閾値を2とした場合、2行目から3行目にかけて、2→0へと変化⇒閾値2より変化したため、変化前の行数を記録 のような感じです。
よろしくお願いいたします。

 Réponse acceptée

Atsushi Ueno
Atsushi Ueno le 13 Jan 2022

1 vote

data = [0 1 2 3 4 5; 2 2 0 0 0 0]'
data = 6×2
0 2 1 2 2 0 3 0 4 0 5 0
find(diff(data(:,2))) % 2列目の変化がある箇所を検索する
ans = 2

3 commentaires

RK
RK le 13 Jan 2022
Modifié(e) : RK le 13 Jan 2022
ありがとうございます。
下記のように、変化(diff)の判断に幅を持たせることは可能でしょうか。
2→1の変化(幅1)では検出しない
2→0の変化(幅2)では検出する
Atsushi Ueno
Atsushi Ueno le 13 Jan 2022
Modifié(e) : Atsushi Ueno le 13 Jan 2022
変化(diff)の判断に幅を持たせる事も方向付けをする事も出来ます
data = [0 1 2 3 4 5 6 7 8 9; 2 2 0 0 1 0 2 2 0 0]
data = 2×10
0 1 2 3 4 5 6 7 8 9 2 2 0 0 1 0 2 2 0 0
df = diff(data(2,:))
df = 1×9
0 -2 0 1 -1 2 0 -2 0
find(df <= -2) % 幅2以上の立下りのみ抽出(2列目と8列目)
ans = 1×2
2 8
RK
RK le 14 Jan 2022
上記、理解出来ました。
ありがとうございました。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 起動と終了 dans Centre d'aide et File Exchange

Produits

Version

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!