nansum

Суммируйте, игнорируя NaN значения

Описание

пример

y = nansum(X) возвращает sum из элементов X, вычисленный после удаления всего NaN значения.

  • Если X вектор, затем nansum(X) сумма всего non-NaN элементы X.

  • Если X матрица, затем nansum(X) вектор-строка из сумм столбца, вычисленных после удаления NaN значения.

  • Если X многомерный массив, затем nansum действует по первому неодноэлементному измерению X. Размер этой размерности становится 1, в то время как размеры всех других размерностей остаются то же самое. nansum удаляет весь NaN значения.

Для получения информации о как nansum массивы обработок всего NaN значения, смотрите Советы.

пример

y = nansum(X,'all') возвращает сумму всех элементов X, вычисленный после удаления NaN значения.

пример

y = nansum(X,dim) возвращает сумму по операционному измерению dim из X, вычисленный после удаления NaN значения.

пример

y = nansum(X,vecdim) возвращает сумму по размерностям, заданным в векторном vecdim. Функция вычисляет суммы после удаления NaN значения. Например, если X матрица, затем nansum(X,[1 2]) сумма всего non-NaN элементы X потому что каждый элемент матрицы содержится в срезе массивов, заданном размерностями 1 и 2.

Примеры

свернуть все

Найдите суммы столбца для матричных данных с отсутствующими значениями.

X = magic(3);
X([1 6:9]) = NaN
X = 3×3

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

y = nansum(X)
y = 1×3

     7     6     0

Найдите сумму всех значений в массиве, игнорируя отсутствующие значения.

Создайте 2 4 3 массивами X с некоторыми отсутствующими значениями.

X = reshape(1:24,[2 4 3]);
X([5:6 20]) = NaN
X = 
X(:,:,1) =

     1     3   NaN     7
     2     4   NaN     8


X(:,:,2) =

     9    11    13    15
    10    12    14    16


X(:,:,3) =

    17    19    21    23
    18   NaN    22    24

Найдите сумму элементов X.

y = nansum(X,'all')
y = 269

Найдите суммы строки для матричных данных с отсутствующими значениями путем определения, чтобы вычислить суммы вдоль второго измерения.

X = magic(3);
X([1 6:9]) = NaN
X = 3×3

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

y = nansum(X,2)
y = 3×1

     1
     8
     4

Найдите сумму многомерного массива по нескольким размерностям.

Создайте 2 4 3 массивами X с некоторыми отсутствующими значениями.

X = reshape(1:24,[2 4 3]);
X([5:6 20]) = NaN
X = 
X(:,:,1) =

     1     3   NaN     7
     2     4   NaN     8


X(:,:,2) =

     9    11    13    15
    10    12    14    16


X(:,:,3) =

    17    19    21    23
    18   NaN    22    24

Найдите сумму каждой страницы X путем определения размерностей 1 и 2 как операционные размерности.

ypage = nansum(X,[1 2])
ypage = 
ypage(:,:,1) =

    25


ypage(:,:,2) =

   100


ypage(:,:,3) =

   144

Например, ypage(1,1,1) сумма non-NaN элементы в X(:,:,1).

Найдите сумму элементов в каждом X(i,:,:) срез путем определения размерностей 2 и 3 как операционные размерности.

yrow = nansum(X,[2 3])
yrow = 2×1

   139
   130

Например, yrow(2) сумма non-NaN элементы в X(2,:,:).

Входные параметры

свернуть все

Входные данные, заданные как скаляр, вектор, матрица или многомерный массив.

Если X пустой массив, затем nansum(X) 0.

Типы данных: single | double

Величина для работы, заданная как положительный целый скаляр. Если вы не задаете значение, то значением по умолчанию является первое измерение массива, размер которого не равняется 1.

dim указывает на размерность, длина которой уменьшает до 1. size(y,dim) 1, в то время как размеры всех других размерностей остаются то же самое.

Считайте двумерный массив X:

  • Если dim равно 1, затем nansum(X,1) возвращает вектор-строку, содержащий сумму для каждого столбца.

  • Если dim равно 2, затем nansum(X,2) возвращает вектор-столбец, содержащий сумму для каждой строки.

Если dim больше ndims(X) или если size(X,dim) 1, затем nansum возвращает X, с 0 значения вместо любых отсутствующих значений.

Типы данных: single | double

Вектор размерностей, заданных как положительный целочисленный вектор. Каждый элемент vecdim представляет размерность входного массива X. Выход y имеет длину 1 в заданных операционных размерностях. Другие длины размерности являются тем же самым для X и y.

Например, если X 2 3х3 массивом, затем nansum(X,[1 2]) возвращает 1 1 3 массивами. Каждый элемент выходного массива является суммой элементов на соответствующей странице X.

Типы данных: single | double

Выходные аргументы

свернуть все

Суммируйте значения, возвращенные как скаляр, вектор, матрица или многомерный массив.

Советы

  • Когда nansum вычисляет сумму массива всего NaN значения, массив пуст однажды NaN значения удалены и, поэтому, суммой остающихся элементов является 0. Выход 0 не сумма NaN значения.

Альтернативная функциональность

Вместо того, чтобы использовать nansum, можно использовать функцию MATLAB® sum с входным параметром nanflag заданный как значение 'omitnan'.

Расширенные возможности

Смотрите также

|

Представлено до R2006a