【发布时间】:2013-07-25 15:48:12
【问题描述】:
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
此代码以前在查找峰值时没有任何问题.. 它找到唯一峰值的主要因素是 如果 (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”,因此绘图将位于您看到的图表的中心
【问题讨论】:
-
如果你有所有的峰,那么
find与max大小的峰应该不会太难。 -
我想从我发布的代码中知道,如何解决峰值相同的问题?如果有 4 个峰值在相同的值上,则“IF”代码将不会运行,因为它不符合要求。在最大尺寸函数中只允许最高的峰值,对吗?或者我看错了
标签: matlab