サンプルの配列があり、その長さが 10 であるとします。ここでそれらに重みを付けて、最も古いサンプルが新しいサンプルよりも少し多くの重みを持つ平均を取得できるようにします。
たとえば、位置 1 = 100%、位置 10 = 10% のひょう量。
これはどのように呼び出され、そのような関数を正しく記述するにはどうすればよいですか?
サンプルの配列があり、その長さが 10 であるとします。ここでそれらに重みを付けて、最も古いサンプルが新しいサンプルよりも少し多くの重みを持つ平均を取得できるようにします。
たとえば、位置 1 = 100%、位置 10 = 10% のひょう量。
これはどのように呼び出され、そのような関数を正しく記述するにはどうすればよいですか?
これはまさにあなたが求めているものではないかもしれませんが、指数移動平均 (EMA)は通常、次のように書かれています。
double exp_avg(double avg, double sample, double sample_weight)
{
return sample * sample_weight + avg * (1 - sample_weight);
// return avg + (sample - avg) * sample_weight; // equivalent alternative
}
最初に EMA を設定するときは、平均を最初のサンプルと等しく設定する必要があります。