2012-06-19 6 views
0

У меня есть куча значений в 3-мерной матрицы, и я нахожу среднее значение из них:Matlab: Что такое нейтральный элемент в функции mean()?

mean(mean(mat)) 

Теперь, по разным причинам я должен добавить несколько строк и элементов в матрице. Но я хочу, чтобы среднее значение оставалось таким же, как если бы добавленные элементы были нейтральными и не приводили к результату.

Как и при умножении совокупности значений, вы можете умножить дополнительные 1 без изменения результата. И с добавлением вы можете добавить дополнительные 0 без каких-либо повреждений.

Какую величину в Matlab можно назначить новым элементам в матрице, чтобы сделать элементы нейтральными при использовании mean()?

Примечание добавлено

Дело в том, когда я рассчитать среднее значение у меня только новая матрица изменяет размер, чтобы сделать это с. Поэтому добавленные элементы должны быть нейтральными.

Я думаю о чем-то вроде NaN, но мне не повезло с этим, так как среднее значение также заканчивается как NaN.

ответ

3

Добавление значений, равных среднему значению матрицы без добавленных значений, оставит новое среднее таким же. (Надеюсь это имеет смысл!). Точка состоит в том, чтобы заполнить и не изменять новое значение, использовать текущее среднее значение.

В качестве альтернативы вы можете заполнить NaN и использовать функцию nanmean.

+0

Но я заранее не нашел среднее значение. .. Я вычисляю его из новой измененной матрицы, где я просто хочу, чтобы среднее значение было исходным средним значением до изменения размера. – Steeven

+0

Вам нужно будет вычислить его заранее, чтобы заполнить правильные значения. – robince

+0

Просто посмотрел ваше правление о NaN и обновил свой ответ. – robince

0

Добавьте нули в матрицу и перетащите свое среднее значение в правильное значение.

т.е. если исходная матрица А пХт и вы изменять размер B, который является N х М, то:

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))