二次元データのピーク値の検出について

上図のような二次元のデータがある場合に、1~3のようにピーク値を検出する方法はありますでしょうか。
頂点のとがり方や距離はデータ毎に異なるために、閾値を調整できるような手法があるとベストです。
データファイルを添付いたします。ご助言お願いいたします。

 채택된 답변

Shunichi Kusano
Shunichi Kusano 2024년 11월 6일

0 개 추천

islocalmax2 という関数があります。いろいろしきい値調整はできますので、一度試してみるといいかもしれません。

댓글 수: 6

HanaHana
HanaHana 2024년 11월 6일
ありがとうございます。早速試そうと思ったのですが、所有のバージョンが2023aのため使えませんでした。1次元のisolocalmaxをうまく利用すれば代替できますでしょうか?
Shunichi Kusano
Shunichi Kusano 2024년 11월 7일
リリース情報記載いただいてましたね。確認しておらずすみません。
そうしますとおっしゃる通りislocalmaxの活用が良さそうです。
行方向と列方向それぞれにスキャンするように適用して、共通して検出できた点を取得する感じでしょうか。斜め方向の情報を加味できないので不完全ではありますが、おおよそ同じような結果になりそうな気はします。
Hiro Yoshino
Hiro Yoshino 2024년 11월 7일
maxk を使うというのもアリかなと思いました
HanaHana
HanaHana 2024년 11월 7일
isolocalmaxですべての行列に行うためにfor文化すると非常に重たくなってしまいます。何か代替案ありますでしょうか?
maxkですと、同じ山の中にある高値を拾ってしまうため、うまくいっておりません。
Shunichi Kusano
Shunichi Kusano 2024년 11월 7일
편집: Shunichi Kusano 2024년 11월 10일
ピークの大きさはこの値以上にはなる、という値があれば(もしなければ全体最大値の60%などの決め方も有り得るかと思います)、
  1. findでその行番号、列番号を抽出
  2. uniqueで重複削除
  3. for文で抽出した行と列のみ狙う
という流れでだいぶ計算量は削減できそうですがいかがでしょうか。
HanaHana
HanaHana 2024년 11월 11일
具体的なアイデアありがとうございます。
うまくいきそうなため一度試していみたいと思います。ありがとうございました。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

제품

릴리스

R2023a

태그

질문:

2024년 11월 6일

댓글:

2024년 11월 11일

Community Treasure Hunt

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

Start Hunting!