在MATLAB中获取矢量中的绝对峰值位置

时间:2013-03-25 10:43:31

标签: matlab matrix plot

假设我有这样的A矩阵:

A =    [0,0,0,0,0,0,106,10,14,20,20,23,27,26,28,28,28,23,28,28,21,18,106,14,12,
17,16,15,22,19,20,18,21,23,23,18,17,15,106,28];

>>  plot(A)

我想要此数据集中的峰值索引。我在这个例子中寻找的答案是一个矩阵,当你将“数据光标”放在绝对峰值上时,它包含曲线中的那些x值。

我想要的答案是:K = [7 23 39]这是峰值的位置。

当我在MATLAB中使用plot命令时,峰值清晰可见。如何找到绝对峰的x值?有可能吗?

2 个答案:

答案 0 :(得分:5)

这并没有给你所有的峰值,但是它给出了集合中的最大值:

max_locations = find(A==max(A))

如果要查找峰值,请使用findpeaks函数:

[peakVal,peakLoc]= findpeaks(A);

答案 1 :(得分:0)

如果您想要最多5个或10个峰值,请使用以下

[peakVal,peakLoc]= findpeaks(A,'sort','descend');