【发布时间】:2017-03-19 19:08:54
【问题描述】:
给定权重列表:
let weights = [0.1, 0.2, 0.4, 0.2, 0.1]
还有一组测量值,我想实现加权平均。
这就是我在 Python 中的做法:
y=[]
w = length(weights)
for n in range(w,len(x)-w):
y[n-w/2-1]=sum([a*b for a,b in zip(weights,x[n-w/2:n+w/2+1])])
#y[n-3]=W[1]*x[n-2]+W[2]*x[n-1]+W[3]*x[n]+W[4]*x[n+1]+W[5]*x[n+2]
我知道 Haskell 没有数组,我想要实现的是 low-pass-filter,我可以在其中手动定义权重。
【问题讨论】:
-
给点魔法,我想要一匹小马。但严重的是,这被严重低估了。
x是什么?什么是w(也许你的意思是weight)?length w总是5吗?你有其他语言的参考实现吗? 你尝试过什么? -
X 是输入数组,w 是权重,y 是结果数组
-
鉴于我们使用的是一种没有数组的语言,我假设您是语言初学者。无论哪种方式,附加信息都应该edited 到问题本身中,这样其他用户就不必从 cmets 中清除信息。我没有时间给出一个完整的答案,但这应该是可行的
tails、zipWith和一点边界摆弄。 -
我已将 解决方案添加到我在 python 中的问题中,如果您能取消投票,我将不胜感激
标签: arrays haskell moving-average weighted-average