好的,我需要编写一个java算法来模拟SMOOTH function中写的IDL。但我不太确定该算法的工作原理。平滑方程由下式给出:
我知道有关于Boxcar平均的post已经类似了。但算法似乎有所不同。
我在这个等式中理解的是有两种状态(if语句),第一种是计算权重平均值,第二种是忽略边界。
在第一个等式中,我认为我得到了求和符号,它从0开始到(w - 1)。
我没有得到的是内部总和Ai+j-w/2
。
以下是使用IDL计算的样本数据(只是大数据的角落部分)。我用重量5计算了这个。
请解释一下该算法的工作原理。
由于
答案 0 :(得分:2)
您希望i
'平均值来自i
'点附近的窗口。所以它必须在那之前开始,然后结束。
在索引中减去w/2
会导致j=0
成为所需窗口的开头,j=w-1
将成为所需窗口的结尾。
它完全等同于从j=-w/2
到j=w/2-1
的总和。