计算二维矩阵的加权平均

112次(最近30天)
阿卜杜勒瓦哈卜
阿卜杜勒瓦哈卜 2018年8月7日
评论道: stelios loizidis2019年5月23日
亲爱的所有人,我希望一切都好。我使用的是376x481的2D矩阵。我想为每一行计算这个矩阵的加权平均,这样期望的输出应该是376 X 1。如果您能帮助我解决这个问题,我将不胜感激。
谢谢。

接受的答案

詹姆斯Tursa
詹姆斯Tursa 2018年8月7日
例如,
W = 1x481向量的权重
M = 376x481矩阵的值
result = sum(m *w,2) / sum(w);
sum (bsxfun (@times, M, w), 2) / (w)之和;
5个评论
阿卜杜勒瓦哈卜
阿卜杜勒瓦哈卜 2018年8月8日
这个矩阵由一个无维度变量(376行)和相关的481小时的历史时间填充。所以每一行代表了这个无因次变量在481小时内的变化(每小时一列)。这个无维数以特定的顺序变化,其中包含这个无维变量的惟一和非惟一值。我想算出每一行中非唯一值和唯一值的权重向量然后得到加权平均值而不是简单平均值。我希望这能为我的问题提供更多的见解。

登录评论。

答案(1)

托尔斯滕
托尔斯滕 2018年8月8日
X = rand(376,481);
w = rand(1, size(X, 2));
Xw = bsxfun(@times, X, w);
m =均值(Xw, 2);
1评论
stelios loizidis
stelios loizidis 2019年5月23日
你好,
我看到了你上面写的命令,我有以下的问题;我有一个矩阵
[5 3 3 3
3 4 5 2
5 0 0 0
3 4 5 2]
对于这个矩阵,我需要对每一行做加权平均。即[5+3+(4/5)*(3+1)]/ 4 =16/5。此外,如果只有一个数字,其余的是0(第3行),那么加权平均值应该是[5+0+0+0]/ 1 =5,最后我们选择最大的加权平均值。这是怎么做到的呢?

登录评论。

标签

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!