我很好奇,从这个代码片段中得到的平均值是多少?累加器应为空。
boost::accumulators::accumulator_set<
int,
boost::accumulators::features<boost::accumulators::tag::mean>
> Accumulator;
int Mean = boost::accumulators::mean(Accumulator);当我测试它的时候,平均值是非零的。有没有什么方法可以告诉我,平均值是为空数据集取的?为什么“均值”的结果值不是零?
我在累加器库的文档中四处寻找,但是找不到这个问题的答案。
发布于 2011-10-13 04:21:31
对于一组空值,任何值都是有效的平均值。也就是说,对于任何x,x * 0 = 0都是有效的。
您可以向您的accumulator_set添加一个count特性,并查询它是否为0。
发布于 2020-04-07 20:08:20
无需添加count功能,因为mean累加器基于count和sum累加器
平均值取决于求和和计数累加器...平均值累加器的结果仅仅是和累加器的结果除以计数累加器的结果。
所以你只需要验证计数是否大于0:
bool isEmpty = boost::accumulators::count(Accumulator) == 0;https://stackoverflow.com/questions/7745731
复制相似问题