Effacer les filtres
Effacer les filtres

weighted average w/ matlab

119 vues (au cours des 30 derniers jours)
Regi streer
Regi streer le 2 Sep 2015
Modifié(e) : Regi streer le 3 Sep 2015
Hi guys, I have calculated different errors over a range.
let's say a range with a linear space from 100 to 150.
For this range I calculate a variable Y so Y(range).
Now I want to calculate the mean of the variable, but I want to give the values close to 125 more weight than the values close to 100 and 150, with the heaviest weight being 125.
I can't seem to figure it out, can someone help me out?

Réponse acceptée

Udit Gupta
Udit Gupta le 2 Sep 2015
You can do something like -
weight=normpdf(range,centerPoint,spread);
wAvg = sum(Y(range).*weight)/sum(weight);
In you example centerPoint will be 125, and larger the spread more slowly the weight will decrease away from centerPoint.
  3 commentaires
Udit Gupta
Udit Gupta le 2 Sep 2015
spread is not a function. It can be any value. Bigger the value bigger the spread is. For example spread = 100 will provide a wide and gentle slope and spread = 50 will produce a steeper slope.
Regi streer
Regi streer le 3 Sep 2015
Modifié(e) : Regi streer le 3 Sep 2015
ah okay, it's a normal distribution i missed that. Thanks!

Connectez-vous pour commenter.

Plus de réponses (1)

dpb
dpb le 2 Sep 2015
Have to decide how much you want the weights to be, but the general idea would be sotoo--
>> y=randi([100 150],40,1); % some random data
>> mean(y) % mean should be near 125
ans =
123.9750
>> w=(y/100).^2;w=w/mean(w); % compute a weight dependent on y; normalize to 1 overall...
>> [min(w) max(w)] % what's look like???
ans =
0.6400 1.4399
>> mean(y.*w) % how much did we change it???
ans =
128.0471
>>
  2 commentaires
Regi streer
Regi streer le 2 Sep 2015
But this does not give me exactly more weight at 125 in my problem right?
dpb
dpb le 2 Sep 2015
Modifié(e) : dpb le 3 Sep 2015
My bad; somehow I read too quickly that the max weight was to be 150, not midpoint. Use a functional with a max at 125; could be the normal pdf as another poster showed or whatever you wish but the same idea works.

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by