0

我在一个 3 维矩阵中有一堆值,我正在找到它们的平均值:

mean(mean(mat))

现在,出于不同的原因,我必须将一些行和元素附加到矩阵中。但我希望平均值保持不变 - 就好像添加的元素是中性的并且不会对结果造成影响。

就像当您将一堆值相乘时,您可以在不改变结果的情况下将额外的 1 相乘。此外,您可以添加更多的 0 而不会造成任何影响。

使用 Matlab 时,我可以为矩阵中的新元素分配什么样的值以使元素保持中性mean()

已添加注释

关键是,当我计算平均值时,我只有新的调整大小的矩阵来做它。因此添加的元素必须是中性的。

我正在考虑类似的东西NaN,但我没有运气,因为平均值也最终为NaN.

4

2 回答 2

3

添加等于矩阵平均值但不添加值的值将使新平均值保持不变。(我希望这是有道理的!)。重点是填不改新均值,使用当前均值。

或者,您可以填写 NaN 并使用该nanmean函数。

于 2012-06-19T09:19:32.697 回答
0

向矩阵添加零并将平均值重新调整为正确的值。

即,如果您的原始矩阵 A 是 nxm 并且您将大小调整为 B 这是 N x M 那么:

mean(mean(A)) = sum(sum(A)) / n x m

mean(mean(B)) = sum(sum(B)) / N x M
              = sum(sum(A)) / N x M   --- since we padded with zeros

重新排列给

mean(mean(A)) = mean(mean(B)) * ( ( N x M )/(n x m) )
于 2012-06-19T13:48:26.720 回答