對於一個你不包括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