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

use*_*486 1 matlab plot matrix

假设我有这样的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)
Run Code Online (Sandbox Code Playgroud)

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

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

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

fat*_*ihk 5

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

max_locations = find(A==max(A))
Run Code Online (Sandbox Code Playgroud)

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

[peakVal,peakLoc]= findpeaks(A);
Run Code Online (Sandbox Code Playgroud)