Main Content

cumsum

Descripción

ejemplo

B = cumsum(A) devuelve la suma acumulativa de A comenzando al principio de la primera dimensión del arreglo en A cuyo tamaño es mayor que 1.

  • Si A es un vector, B es un vector del mismo tamaño que contiene la suma acumulativa de A.

  • Si A es una matriz, B es una matriz del mismo tamaño que contiene la suma acumulativa de cada columna de A.

  • Si A es un arreglo multidimensional, B es un arreglo del mismo tamaño que contiene la suma acumulativa en la primera dimensión del arreglo de A cuyo tamaño es mayor que 1.

  • Si A es una tabla u horario, M es una tabla u horario del mismo tamaño que contiene la suma acumulativa de cada variable de A. (desde R2023a)

La clase de B es la misma que la clase de A, salvo si A es logical, en cuyo caso B es double.

ejemplo

B = cumsum(A,dim) devuelve la suma acumulativa de los elementos de la dimensión dim. Por ejemplo, si A es una matriz, cumsum(A,2) devuelve la suma acumulativa en cada fila de A.

ejemplo

B = cumsum(___,direction) especifica la dirección para cualquiera de las sintaxis anteriores. Por ejemplo, cumsum(A,2,"reverse") devuelve la suma acumulativa dentro de las filas de A operando desde el final hasta el principio de la segunda dimensión.

ejemplo

B = cumsum(___,nanflag) especifica si incluir u omitir valores NaN en A. Por ejemplo, cumsum(A,"omitnan") ignora los valores NaN al calcular cada suma. De forma predeterminada, cumsum incluye valores NaN.

Ejemplos

contraer todo

Encuentre la suma acumulativa de los enteros desde 1 hasta 5. El elemento B(2) es la suma de A(1) y A(2), mientras que B(5) es la suma de los elementos A(1) a A(5).

A = 1:5;
B = cumsum(A)
B = 1×5

     1     3     6    10    15

Cree una matriz de 3 por 3 cuyos elementos se correspondan con sus índices lineales.

A = [1 4 7; 2 5 8; 3 6 9]
A = 3×3

     1     4     7
     2     5     8
     3     6     9

Encuentre la suma acumulativa de las columnas de A. El elemento B(5) es la suma de A(4) y A(5), mientras que B(9) es la suma de A(7), A(8) y A(9).

B = cumsum(A)
B = 3×3

     1     4     7
     3     9    15
     6    15    24

Defina una matriz de 2 por 3 cuyos elementos se correspondan con sus índices lineales.

A = [1 3 5; 2 4 6]
A = 2×3

     1     3     5
     2     4     6

Encuentre la suma acumulativa de las filas de A. El elemento B(3) es la suma de A(1) y A(3), mientras que B(5) es la suma de A(1), A(3) y A(5).

B = cumsum(A,2)
B = 2×3

     1     4     9
     2     6    12

Cree un arreglo de valores lógicos.

A = [true false true; true true false]
A = 2x3 logical array

   1   0   1
   1   1   0

Encuentre la suma acumulativa de las filas de A.

B = cumsum(A,2)
B = 2×3

     1     1     2
     1     2     2

La salida tiene el tipo double.

class(B)
ans = 
'double'

Cree una matriz de 3 por 3 de enteros aleatorios entre 1 y 10.

rng default;
A = randi([1,10],3)
A = 3×3

     9    10     3
    10     7     6
     2     1    10

Calcule la suma acumulativa de las filas. Especifique la opción "reverse" para operar de derecha a izquierda en cada fila. El resultado tiene el mismo tamaño que A.

B = cumsum(A,2,"reverse")
B = 3×3

    22    13     3
    23    13     6
    13    11    10

Cree una matriz que contenga valores NaN.

A = [3 5 NaN 4; 2 6 NaN 9; 1 3 5 NaN]
A = 3×4

     3     5   NaN     4
     2     6   NaN     9
     1     3     5   NaN

Calcule las sumas acumulativas de la matriz, excluyendo los valores NaN. En las columnas de la matriz que contienen valores NaN iniciales, la suma acumulativa es 0 hasta que se encuentra un valor que no sea NaN.

B = cumsum(A,"omitnan")
B = 3×4

     3     5     0     4
     5    11     0    13
     6    14     5    13

Argumentos de entrada

contraer todo

Arreglo de entrada, especificado como vector, matriz, arreglo multidimensional, tabla u horario.

Tipos de datos: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | table | timetable
Soporte de números complejos:

Dimensión en la que operar, especificada como escalar entero positivo. Si no especifica la dimensión, el valor predeterminado es la primera dimensión del arreglo de tamaño mayor que 1.

Considere un arreglo de entrada bidimensional, A:

  • cumsum(A,1) opera en elementos sucesivos de las columnas de A y devuelve las sumas acumulativas de cada columna.

  • cumsum(A,2) opera en elementos sucesivos de las filas de A y devuelve las sumas acumulativas de cada fila.

cumsum(A,1) column-wise operation and cumsum(A,2) row-wise operation

cumsum devuelve A si dim es mayor que ndims(A).

Dirección de la acumulación, especificada como uno de estos valores:

  • "forward": opera desde 1 hasta end de la dimensión operativa.

  • "reverse": opera desde end hasta 1 de la dimensión operativa.

Condición de valor faltante, especificada como uno de estos valores:

  • "includemissing" o "includenan": incluyen los valores NaN en A al calcular las sumas acumulativas. Los elementos de B son NaN en cuanto se encuentra el primer valor NaN de A. "includemissing" y "includenan" tienen el mismo comportamiento.

  • "omitmissing" o "omitnan": ignoran los valores NaN de A al calcular las sumas acumulativas. Si A tiene valores NaN consecutivos iniciales, los elementos correspondientes de B son 0. "omitmissing" y "omitnan" tienen el mismo comportamiento.

Sugerencias

  • La opción "reverse" de muchas funciones acumulativas permite realizar cálculos direccionales rápidos sin necesidad de invertir o reflejar el arreglo de entrada.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

| | | | | |