How can I calculate a weighted mean in Matlab?

조회 수: 359 (최근 30일)
Jan-Erik
Jan-Erik 2013년 2월 18일
답변: Micke Malmström 2019년 10월 3일
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
shelley
shelley 2015년 10월 20일
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.

댓글을 달려면 로그인하십시오.

채택된 답변

Matt J
Matt J 2013년 2월 18일
편집: Matt J 2013년 2월 18일
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
Jason Garcia
Jason Garcia 2014년 1월 28일
weighted_mean = mean(bsxfun(@times,A,w'),2)
Matt J
Matt J 2014년 1월 28일
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);

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

John Hock
John Hock 2019년 4월 28일
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
Image Analyst
Image Analyst 2019년 4월 28일
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
stelios loizidis 2019년 5월 27일
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?

댓글을 달려면 로그인하십시오.


Micke Malmström
Micke Malmström 2019년 10월 3일

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by