しきい値100から行​を遡り、10以上とな​ったframeを特定​する

3 次查看(过去 30 天)
Shogo
Shogo 2020-8-26
评论: Shogo 2020-8-28
大変お世話になります。
しきい値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

采纳的回答

Shunichi Kusano
Shunichi Kusano 2020-8-27
いろんなやり方がありそうですが、素直にやるとこんな感じになるかと思います。
  1. 100を超えた位置を検出
  2. 10を超えた位置を検出
  3. 2の中から1に一番近いものを検出
% 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
  1 个评论
Shogo
Shogo 2020-8-28
Kusano様
サンプルコードを作成して頂きありがとうございます!
また大変わかりやすくご説明して頂き重ねて感謝申し上げます!
こちらを素に作成作させて頂きます。

请先登录,再进行评论。

更多回答(0 个)

标签

产品

Community Treasure Hunt

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

Start Hunting!