:
#include <boost/accumulators/statistics/kurtosis.hpp>
あなたがやったとしても、あなたはそれはあなたがおそらく何をしたいのか、まっすぐvector
では動作しません見としてはaccumulator_set
を使用し、より多くのヘッダーも。ここ
は、この問題を解決するために、2つの方法を示し、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
この関数は別の名前空間にあり、 'boost :: some :: namespace :: kurtosis(a)'を使う必要があります。 'some :: namespace'を実際の(わからない)名前空間に置き換えます。 –
免責事項:私が言っていることを絶対に確実にするために、問題のドメインについて十分に知りません。私の推測では、のアルゴリズムは[パラメータ化された事前定義ディストリビューション](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)がその一例です。 –