nansum

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

Синтаксис

y = nansum(X)
y = nansum(X,'all')
y = nansum(X,dim)
y = nansum(X,vecdim)

Описание

пример

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