我想在一系列数字中找到“真实”的峰值位置在找到最大值的指数后,我应用加权平均值来确定真正的峰值位置。这需要两个索引位于左侧,两个索引位于右侧但是,如果最高的峰值出现在指数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/