2011-10-12 53 views
2

我很好奇,从此代码段中获得的平均值是多少?累加器意图是空的。使用空Boost累加器

boost::accumulators::accumulator_set< 
    int, 
    boost::accumulators::features<boost::accumulators::tag::mean> 
> Accumulator; 

int Mean = boost::accumulators::mean(Accumulator); 

当我测试它时,平均值不为零。有没有什么方法可以说明平均值是用于空数据集?为什么“Mean”的结果值非零?

我四处寻找累加器库的文档,但无法找到这个问题的答案。

+0

任何价值将是一个有效的均值为空值的集合,不是吗? –

回答

2

任何值都是一组空值的有效均值。这是x * 0 = 0持有任何x

你可以添加一个count功能,您accumulator_set和查询,看是否其0

+0

尽管这可能(在某种程度上?)在数学上是正确的,但我觉得这是不切实际的。是否应该没有办法从“空集的平均值”中说出“任何价值”? –

+0

@Dylan Klomparens:是不是添加'count'功能来检查一个空集为您提供一个可行的解决方案? –

+0

是的。虽然比我想要的更优雅。 –