Suma acumulativa con MATLAB
Este tutorial discutirá cómo encontrar la suma acumulativa de un vector o matriz usando la función cumsum()
en MATLAB.
Obtenga la suma acumulativa de un vector o matriz usando la función cumsum()
en MATLAB
Podemos usar la función incorporada de MATLAB cumsum()
para encontrar la suma acumulativa de un vector o matriz.
Si la entrada es un vector, entonces la función cumsum()
devolverá la suma acumulativa de los elementos del vector. Si la entrada es un array, entonces la función cumsum()
devolverá la suma acumulada de las columnas de la matriz.
Si la entrada es un array multidimensional, entonces la función cumsum()
devolverá la suma acumulativa de la primera dimensión no singleton. Por ejemplo, encontremos la suma acumulativa de los elementos de un vector.
Vea el código a continuación.
clc
v = 1:9
s = cumsum(v)
Producción :
v =
1 2 3 4 5 6 7 8 9
s =
1 3 6 10 15 21 28 36 45
Encontremos la suma acumulativa de un array. Vea el código a continuación.
clc
v = [1:3; 1:3]
s = cumsum(v)
Producción :
v =
1 2 3
1 2 3
s =
1 2 3
2 4 6
En la salida, la variable s contiene la suma acumulada de cada columna. También podemos encontrar la suma acumulada de filas en una columna pasando un número entero como segundo argumento en la función cumsum()
.
Por ejemplo, busquemos la suma acumulada de filas de la matriz anterior. Vea el código a continuación.
clc
v = [1:3; 1:3]
s = cumsum(v,2)
Producción :
v =
1 2 3
1 2 3
s =
1 3 6
1 3 6
En la salida, la variable s
contiene la suma acumulada de cada fila.
También podemos encontrar la suma acumulada de entradas lógicas. En este caso, la función cumsum()
usará 0 en lugar de falso y 1 es verdadero, y la respuesta estará en el tipo de datos double.
También podemos invertir la suma acumulada en un vector o matriz. Por defecto, la función cumsum()
encuentra una suma acumulativa comenzando desde el lado izquierdo de un vector o matriz, pero también podemos encontrar la suma acumulada comenzando desde el lado derecho de un vector o matriz usando una cadena inversa dentro de la Función cumsum()
.
Por ejemplo, encontremos la suma acumulada comenzando desde el lado derecho de un vector. Vea el código a continuación.
clc
v = 1:3
s = cumsum(v,'reverse')
Producción :
v =
1 2 3
s =
6 5 3
En la salida, la suma acumulada comienza desde el lado derecho. Si tenemos valores de NaN dentro de un vector o matriz y encontramos su suma acumulativa, la función cumsum()
cambiará los valores de salida a NaN tan pronto como se encuentre el primer valor de NaN.
Para evitar el valor de NaN, podemos decirle a la función que ignore los valores de NaN usando la cadena omitnan
como argumento en la función cumsum()
. Por ejemplo, creemos un vector que contenga algunos valores de NaN y encontremos su suma acumulativa usando la función cumsum()
.
Vea el código a continuación.
clc
v = [1 NaN 5 6 7 NaN NaN]
s = cumsum(v,'omitnan')
Producción :
v =
1 NaN 5 6 7 NaN NaN
s =
1 1 6 12 19 19 19
La función cumsum()
calculó la suma acumulada ignorando los valores de NaN en la salida.