How can I calculate a weighted mean in Matlab?
367 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Jan-Erik
le 18 Fév 2013
Réponse apportée : Micke Malmström
le 3 Oct 2019
I have a 180-by-360 matrix of (surface temperature) values and I want to calculate a weighted average of all values given in this matrix. However, I need to weight these values with respect to latitude. Is there a way to calculate a weighted mean in Matlab? Please help me.
Thanks in advance for any help!
- Jan-Erik
1 commentaire
shelley
le 20 Oct 2015
Normally taking dim 1 mean of some, say 3x5 matrix A, can be seen as w=[1/3 1/3 1/3], and w*A returns you the answer.
Now if we want to take dim 1 weighted mean of A, we can set our weight in w = [1/6 2/3 1/6], then take w*A, which should return you a 1x5 row vector.
Réponse acceptée
Matt J
le 18 Fév 2013
Modifié(e) : Matt J
le 18 Fév 2013
If A is your 180x360 matrix and W is a 180x1 vector of weights for the latitudes, do
weighted_mean = mean(W.'*A,2);
6 commentaires
Matt J
le 28 Jan 2014
weighted_mean = mean(bsxfun(@times,A,w'),2)
If that's what the OP intended, it would be more efficient to do
weighted_mean=w'.*mean(A,2);
Plus de réponses (2)
John Hock
le 28 Avr 2019
Hi Everyone
I just want to ask one thing that if i have 2d array 2*4 and want to get weighted average with vector of 1*4
i want first row of A get multiplied with B and give weighted average as an output similarly for next row.
Please help
2 commentaires
Image Analyst
le 28 Avr 2019
Try
B = repmat(B, [2, 1]) % Make B 2*4
weightedMeans = sum(A.*B, 1); % Get weighted means within a row going across columns.
stelios loizidis
le 27 Mai 2019
Hello,
I have the following questuin: I have a matrix e.g
[5 3 3 1
3 4 5 2
5 0 0 0
3 4 5 2]
For this matrix I have to make a weighted average for each row. That is [5+3+(4/5)*(3+1)] /4=16/5. Also, if there is only one number and the zero (row 3) the weighted average should be [5+0+0+0] / 1 =5 and the end we choose the largest weight average. How does this work?
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!