1

假设我有这样的 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]这是山峰的位置。

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

4

2 回答 2

5

这不会给你所有的峰值,但它会给你集合中的最大值:

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

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

[peakVal,peakLoc]= findpeaks(A);
于 2013-03-25T11:10:09.030 回答
0

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

[peakVal,peakLoc]= findpeaks(A,'sort','descend');
于 2014-10-23T02:56:46.073 回答