Main Content

nansum

(No recomendado) Suma, ignorando valores NaN

No se recomienda nansum. Use la función sum de MATLAB® en su lugar. Con la función sum, puede especificar si quiere incluir u omitir los valores NaN para el cálculo. Para obtener más información, consulte Consideraciones de compatibilidad.

Descripción

ejemplo

y = nansum(X) devuelve la sum de los elementos de X, calculada después de eliminar todos los valores NaN .

  • Si X es un vector, nansum(X) es la suma de todos los elementos que no sean NaN de X.

  • Si X es una matriz, nansum(X) es un vector fila de sumas de columnas, calculado después de eliminar los valores NaN.

  • Si X es un arreglo multidimensional, nansum opera a lo largo de la primera dimensión no singular de X. El tamaño de esta dimensión pasa a ser 1, mientras que los tamaños del resto de dimensiones no varían. nansum elimina todos los valores NaN.

Para obtener información sobre cómo nansum trata arreglos que solo contienen valores NaN, consulte Consejos.

ejemplo

y = nansum(X,'all') devuelve la suma de todos los elementos de X, calculada después de eliminar los valores NaN.

ejemplo

y = nansum(X,dim) devuelve la suma a lo largo de la dimensión operativa dim de X, calculada después de eliminar los valores NaN.

ejemplo

y = nansum(X,vecdim) devuelve la suma a lo largo de las dimensiones especificadas en el vector vecdim. La función calcula las sumas después de eliminar los valores NaN. Por ejemplo, si X es una matriz, nansum(X,[1 2]) es la suma de todos los elementos que no sean NaN de X porque cada elemento de una matriz está dentro de la parte del arreglo definida por las dimensiones 1 y 2.

Ejemplos

contraer todo

Encuentre las sumas de columnas de los datos de una matriz con valores faltantes.

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

Encuentre las sumas de todos los valores de un arreglo, ignorando los valores faltantes.

Cree un arreglo de 2 por 4 por 3 X con algunos valores faltantes.

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

Encuentre la suma de los elementos de X.

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

Encuentre las sumas de filas de los datos de una matriz con valores faltantes especificando el cálculo de las sumas a lo largo de la segunda dimensión.

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

Encuentre la suma de un arreglo multidimensional a lo largo de varias dimensiones.

Cree un arreglo de 2 por 4 por 3 X con algunos valores faltantes.

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

Encuentre la suma de cada página de X especificando las dimensiones 1 y 2 como las dimensiones operativas.

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

    25


ypage(:,:,2) =

   100


ypage(:,:,3) =

   144

Por ejemplo, ypage(1,1,1) es la suma de los elementos que no son NaN de X(:,:,1).

Encuentre la suma de elementos de cada porción de X(i,:,:) especificando las dimensiones 2 y 3 como las dimensiones operativas.

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

   139
   130

Por ejemplo, yrow(2) es la suma de los elementos que no son NaN de X(2,:,:).

Argumentos de entrada

contraer todo

Datos de entrada, especificados como un escalar, un vector, una matriz o un arreglo multidimensional.

Si X es un arreglo vacío, nansum(X) es 0.

Tipos de datos: single | double

La dimensión a lo largo de la que operar, especificada como un escalar entero positivo. Si no especifica un valor, el valor predeterminado es la primera dimensión del arreglo cuyo tamaño no sea igual a 1.

dim indica la dimensión cuya longitud se reduce a 1. size(y,dim) es 1, mientras que los tamaños del resto de dimensiones no varían.

Considere un arreglo de dos dimensiones X:

  • Si dim es igual a 1, nansum(X,1) devuelve un vector fila que contiene la suma de cada columna.

  • Si dim es igual a 2, nansum(X,2) devuelve un vector columna que contiene la suma de cada fila.

Si dim es mayor que ndims(X) o si size(X,dim) es 1, nansum devuelve X, con valores 0 en lugar de cualquier valor faltante.

Tipos de datos: single | double

Un vector de dimensiones, especificado como un vector entero positivo. Cada elemento de vecdim representa una dimensión del arreglo de entrada X. La salida y tiene la longitud 1 en las dimensiones operativas especificadas. El resto de las longitudes de las dimensiones son iguales para X e y.

Por ejemplo, si X es un arreglo de 2 por 3 por 3, nansum(X,[1 2]) devuelve un arreglo de 1 por 1 por 3. Cada elemento del arreglo de salida es la suma de los elementos de la página correspondiente de X.

Mapping of input dimension of 2-by-3-by-3 to output dimension of 1-by-1-by-3

Tipos de datos: single | double

Argumentos de salida

contraer todo

Valores de suma, devueltos como un escalar, un vector, una matriz o un arreglo multidimensional.

Sugerencias

  • Cuando nansum calcula la suma de un arreglo que solo contiene valores NaN, el arreglo queda vacío una vez eliminados los valores NaN y, por tanto, la suma de los elementos restantes es 0. La salida 0 no es una suma de los valores NaN.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

contraer todo

R2020b: No se recomienda nansum.

No se recomienda nansum. Use la función sum de MATLAB en su lugar. No se planea eliminar nansum.

Para actualizar el código, cambie las instancias del nombre de la función nansum a sum. Después, especifique la opción 'omitnan' con el argumento de entrada nanflag.

La función sum tiene las siguientes ventajas respecto a la función nansum:

  • sum ofrece más prestaciones ampliadas para admitir arreglos altos, arreglos de GPU, arreglos de distribución, generación de código C/C++ y generación de código GPU.

  • sum devuelve un valor de salida con un tipo de datos especificado.

Consulte también

|