- 100を超えた位置を検出
- 10を超えた位置を検出
- 2の中から1に一番近いものを検出
しきい値100から行を遡り、10以上となったframeを特定する
조회 수: 2 (최근 30일)
이전 댓글 표시
大変お世話になります。
しきい値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
채택된 답변
Shunichi Kusano
2020년 8월 27일
いろんなやり方がありそうですが、素直にやるとこんな感じになるかと思います。
% 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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 伝播とチャネル モデル에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!