if (pbcg(k+M) > pbcg(k-1+M) && pbcg(k+M) > pbcg(k+1+M) && pbcg(k+M) > threshold)
peaks_y(Counter) = pbcg(k+M);
peaks_x(Counter) = k + M;
py = peaks_y(Counter);
px = peaks_x(Counter);
plot(px,py,'ro');
Counter = (Counter + 1)-1;
fid = fopen('y1.txt','a');
fprintf(fid, '%d\t%f\n', px, py);
fclose(fid);
end
end
このコードは、以前はピークの検出に問題がありませんでした..唯一のピークを検出するための主な要因は、if (pbcg(k+M) > pbcg(k-1+M) && pbcg(k+M) です。 ) > pbcg(k+1+M) && pbcg(k+M) > しきい値) しかし、今のところ、特定の最高ピークではなく、しきい値を超えるすべてのピークが表示され続けます..
更新: 最高のピークに同じ値を取得した 4 つのノードがある場合はどうなりますか?
編集: 同じ値の表面を持つ複数のピークがある場合は、中央の値を取得してプロットします。
つまり、たとえば [1,1,1,4,4,4,2,2,2] です。
5番目の位置にある「4」を取るので、プロットはグラフの中央になります。