Calculate weighted average of a 2D matrix
57 ビュー (過去 30 日間)
表示 古いコメント
Dear all, I hope all is well. I am working with a 2D Matrix that is 376x481. I would like to calculate the weighted average of this matrix for each row, such that the desired output should be sized 376 X 1. I would greatly appreciate any help with this problem.
Thanks.
0 件のコメント
採用された回答
James Tursa
2018 年 8 月 7 日
E.g.,
w = 1x481 vector of weights
M = your 376x481 matrix of values
result = sum(M.*w,2) / sum(w);
or
sum(bsxfun(@times,M,w),2) / sum(w);
その他の回答 (1 件)
Thorsten
2018 年 8 月 8 日
X = rand(376, 481);
w = rand(1, size(X, 2));
Xw = bsxfun(@times, X, w);
m = mean(Xw, 2);
1 件のコメント
stelios loizidis
2019 年 5 月 23 日
Hello,
I saw the commands you wrote above and I have the following question; 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 rest 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?
参考
カテゴリ
Find more on Resizing and Reshaping Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!