我有一个浮点值的一维数组(C#使FYI倍增),我需要找到这些值的“峰值”……就像用图形表示一样。

我不能只取最大值,因为峰值实际上是一个波动很小的平稳期。这个高原正处于一堆噪音之中。我正在寻找一种解决方案,它将使我处于这个高原的中心。

一个示例数组可能如下所示:

1,2,1,1,2,1,3,2,4,4,4,5,6, 8,8,8,8,7,8,7,9,7 ,5,4, 4,3,3,2,2,1,1,1,1,1,2,1,1,1,1

峰值在粗体部分的某处。

有任何想法吗?

最佳答案

您需要首先定义“小”的含义。假设最大值附近的“小”波动定义为最大值±1/3以内的任何值。然后,直接确定平稳状态。

遍历数据以识别最大值,然后再次遍历以识别在最大值的±1范围内的所有值。

10-06 05:48