Boostアキュムレータを使用してローリングウィンドウ全体の平均を追跡するコードがあります。これは「ローリング平均」です。ローリング平均に加えて、この同じローリングウインドウで最小値と最大値を追跡したいと思います。C++のブーストの場合、最小値とローリングの最大値は?
ブーストアキュムレータと転がり分とローリング最大を計算する方法はありますか?私はrolling_meanに使用アキュムレータに最小値と最大値のタグを追加しようとしたが、それは私が欲しいものを私に与えていない...
をする方法を見ていないです。
typedef accumulator_set<uint32_t, stats<tag::rolling_mean> > rollingMeanAcc_t;
は
typedef accumulator_set<uint32_t, stats<tag::rolling_mean,tag::min,tag::max> > rollingMeanAcc_t;
なるしかし、minとmaxは、ここで提供さは、平均値と同じローリングウィンドウに限定されるものではなく、全体アキュムレータにわたって計算されます。
ブーストdocumentationは、最小および最大がすべてのサンプルにわたって計算され、ローリングウィンドウに限定されないことを示しています。彼らはサンプルを制限したり重み付けする方法を提供していないようです。
ローリングウィンドウ全体に平均/最小/最大をレポートしたいと考えています。
私は現在Boostバージョン1.48.0を使用しています。私は、最新バージョン(1.54.0)のドキュメントを見て、そこに実装されている最小/最大のローリングを見ていません。
私はsliding window minimumを追跡する非ブースト方法を発見したが、これは私はどちらか欲しいものではありません。前回の最小値/最大値より大きい/小さい値であるため、値を削除したくない場合は、rolling_meanが不正確になる可能性があります。
ありがとうございます。これは意味をなさない。これを回避する方法があるかもしれませんか?どういうわけか、アキュムレータに保存されている現在の最大値と最小値を「リセット」したり上書きしたりできますか? –