我想在一系列数字中找到“真实”的峰值位置在找到最大值的指数后,我应用加权平均值来确定真正的峰值位置。这需要两个索引位于左侧,两个索引位于右侧但是,如果最高的峰值出现在指数0或1,或者length-1和length-2上呢?现在我用ifs做边界检查在前后两个零填充数组是否更快,这将使ifs不必要?

最佳答案

解决办法取决于问题如果峰值在数组的前一个或两个条目处,则左侧的数据值应为零,或者可能是前一个或两个元素的反射:

index:  -2 -1  0  1  2  3  4
         0  0 12  8  1  2  3   <<A assume this, or

         1  8 12  8  1  2  3   <<B or this

取决于具体的问题同样的考虑也适用于数组的末尾。
一般来说,如果你的数据是泊松分布,那么a可能是最好的估计如果数据是高斯的,那么b是一个很好的假设。

关于c - C语言中5点加权平均的最优算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18303581/

10-10 04:58