Findpeaks 坐标与 X 轴坐标不匹配(Matlab)

Findpeaks coordinates not matching X axis coordinates (Matlab)

我有一段代码没有按预期执行(至少在我看来),希望有人能帮助澄清这个问题。

代码绘制了我的数据的直方图,并应用 ksdensity 函数来平滑数据,最后它运行 findpeaks 函数以 return 绘制的最大值。然而,水平轴的坐标与绘制数据的图形表示不对应。

MB(A); %array with the data to be plotted
figure;
histogram(MB(A),25)

[f,xi] = ksdensity(MB(A), 'Bandwidth',10);
figure;
plot(xi,f);
[peaks,loc] = findpeaks(f) 

这段代码的结果是:

峰值= 0.0232 0.0017
地点= 27 76

然而,当查看图形表示时,峰的坐标(对于水平轴)与这些值有很大不同

histogram smoothed data

我最初认为这可能是过拟合或欠拟合的问题,但在对这些值进行了一些调整后,问题仍然存在。我只是缺少一些基本概念吗?任何帮助将不胜感激。非常感谢

[loc] 位置是点的 index,因此您可以通过以下方式获得图形 x:

xi(loc)

有关返回变量的信息,请参阅 matlab 帮助:

[PKS,LOCS]= findpeaks(Y) also returns the indices LOCS at which the
    peaks occur.