我在三维矩阵中有一堆值,我发现它们的平均值:
mean(mean(mat))
现在,由于不同的原因,我必须在矩阵中附加一些行和元素。但是我希望平均值保持不变 - 好像添加的元素是中性的并且不会在结果中造成。
就像你乘以一堆数值一样,你可以在不改变结果的情况下乘以额外的1。并且通过添加,您可以进一步添加0,但不会造成任何影响。
在使用mean()
时,我可以将Matlab中的哪些值分配给矩阵中的新元素以使元素保持中立?
注意添加
关键是,当我计算平均值时,我只有新的调整大小的矩阵来做。因此,添加的元素必须是中性的。
我正在考虑像NaN
之类的东西,但我没有运气,因为平均值最终也是NaN
。
答案 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) )