对于一个你不包括kurtosis
头:
#include <boost/accumulators/statistics/kurtosis.hpp>
即使你做到了,你看它不直vector
工作,你可能想要做的是使用accumulator_set
和更多的标题以及。
下面是使用accumulator_set
最小例如,这显示了两种方法来解决这个问题:
#include <boost/math/distributions.hpp>
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics/stats.hpp>
#include <boost/accumulators/statistics/mean.hpp>
#include <boost/accumulators/statistics/variance.hpp>
#include <boost/accumulators/statistics/kurtosis.hpp>
#include <iostream>
#include <vector>
using namespace boost::accumulators;
int main()
{
accumulator_set<double, stats<tag::mean, tag::kurtosis > > acc;
accumulator_set<double, stats<tag::mean, tag::kurtosis > > acc2;
acc(2) ;
acc(3) ;
acc(4) ;
std::cout << mean(acc) << " " << kurtosis(acc) << std::endl ;
std::vector<double> v1 ;
v1.push_back(2);
v1.push_back(3);
v1.push_back(4);
acc2 = std::for_each(v1.begin(), v1.end(), acc2) ;
std::cout << mean(acc2) << " " << kurtosis(acc2) << std::endl ;
}
这里是将Accumulators Framework
User's Guide的链接。本指南有一些很好的例子。
此前thread找到了一种方法来使用vector
,虽然它不是直截了当,我无法得到它的工作。
如果不编译,发布编译器错误 – mathematician1975 2013-03-05 12:13:01
该函数在另一个命名空间中,您需要使用'boost :: some :: namespace :: kurtosis(a)'。用实际的(我不知道的)命名空间替换'some :: namespace'。 – 2013-03-05 12:17:42
免责声明:我对问题域不够了解,无法确定我在说什么。我的猜测是,中的算法仅适用于[参数化预定义分布](http://www.boost.org/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref /dists.html)。使用数据集的替代方案可以是[Boost.Accumulators](http://www.boost.org/libs/accumulators)。 [Here](http://liveworkspace.org/code/2cDjQ9$0)就是一个例子。 –
2013-03-05 13:46:30