Matlab:mean()函数中的中性元素是什么?

时间:2012-06-19 09:18:20

标签: matlab matrix element mean

我在三维矩阵中有一堆值,我发现它们的平均值:

mean(mean(mat))

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

就像你乘以一堆数值一样,你可以在不改变结果的情况下乘以额外的1。并且通过添加,您可以进一步添加0,但不会造成任何影响。

在使用mean()时,我可以将Matlab中的哪些值分配给矩阵中的新元素以使元素保持中立?

注意添加

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

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

2 个答案:

答案 0 :(得分:3)

在没有添加值的情况下添加等于矩阵均值的值将使新均值保持不变。 (我希望这是有道理的!)。要点是填写而不是更改新均值,使用当前均值。

或者,您可以使用NaN填写并使用nanmean功能。

答案 1 :(得分:0)

在矩阵中添加零,并将平均值重新缩放为正确的值。

即。如果您的原始矩阵A是n x m并且您将其调整为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) )