- 100を超えた位置を検出
- 10を超えた位置を検出
- 2の中から1に一番近いものを検出
しきい値100から行を遡り、10以上となったframeを特定する
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Shogo
am 26 Aug. 2020
Kommentiert: Shogo
am 28 Aug. 2020
大変お世話になります。
しきい値100から行を遡り、10以上となったframeを特定したく、
以下のコードを作成してみたのですが、上手くいきませんでした。何か良きアイディアがあれば教えて頂ければ幸いです。
A = GRFy>=100; % 100N以上を列ベクトルにする
Data = find(~A_exceed_100N) % 反転させる?
[~,idxA] = min(Data)
以下の方法で立ち上がり位置を特定しようとしています。
①列ベクトルABCが以下のようにあるとする
②しきい値100とする
③100に到達したframeから行を遡り、10以上となったframeを特定する
(この場合、10.9)
Data =
0
0
0
15
16
10
0
0
0
9.2
10.9
12.2
13.6
15.1
16.6
18.3
20.155053
98.312417
103.010992
0 Kommentare
Akzeptierte Antwort
Shunichi Kusano
am 27 Aug. 2020
いろんなやり方がありそうですが、素直にやるとこんな感じになるかと思います。
% N以上となった位置のインデックスを取得
idx100 = idx_go_over_N(Data, 100) % 100以上
idx10 = idx_go_over_N(Data, 10) % 10以上
% 距離を計算
dist = idx100 - idx10;
dist(dist<0) = 100; % idx100以上のものは検知しないよう大きい値に置換
[~,mini] = min(dist); % idx100に一番近いidx10を抽出
idx10_100 = idx10(mini); % 元データでのインデックスに振りなおす
Data(idx10_100) % 10.9
function idx = idx_go_over_N(array,N)
b = array > N;
diff_b = [0; diff(b)] == 1;
idx = find(diff_b);
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu アセンブリ finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!