我想计算一个重量作为距离的倒数,例如反距离加权插值 http://en.wikipedia.org/wiki/Inverse_distance_weighting.
double wgt = 0, wgt_tmp, result = 0;
for (int i = 0; i < num; i++) {
wgt_tmp = 1.0/dist[i];
wgt += wgt_tmp;
result += wgt_tmp * values[i];
}
results /= wgt;
不过距离可以0
我需要使权重适合计算。如果只有一个距离dist[i]
is 0
,我想要它对应的值values[i]
to be dominant。如果有几个距离0
,我想让他们的价值观平等贡献到结果。也就算dist[i]
不是零而是很小,我希望有一个合理的标准来检查和处理它。知道如何实施吗?
如果存在零距离,则无需插值,因为您已经完美匹配了!
在 for 循环内部:
if(dist[i] == 0.) return values[i];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)