Contenido principal

cumprod

Producto acumulativo

Descripción

B = cumprod(A) devuelve el producto acumulativo de A comenzando al principio de la primera dimensión del arreglo en A cuyo tamaño no es igual a 1.

  • Si A es un vector, B es un vector del mismo tamaño que contiene el producto acumulativo de A.

  • Si A es una matriz, B es una matriz del mismo tamaño que contiene el producto acumulativo en cada columna de A.

  • Si A es un arreglo multidimensional, B es un arreglo del mismo tamaño que contiene el producto acumulativo en la primera dimensión del arreglo de A cuyo tamaño no es igual a 1.

  • Si A es una tabla u horario, M es una tabla u horario del mismo tamaño que contiene el producto acumulativo en 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 = cumprod(A,dim) devuelve el producto acumulativo de los elementos de la dimensión dim. Por ejemplo, si A es una matriz, cumprod(A,2) devuelve el producto acumulativo en cada fila de A.

ejemplo

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

ejemplo

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

ejemplo

Ejemplos

contraer todo

Encuentre el producto acumulativo de los enteros desde 1 hasta 5. El elemento B(2) es el producto de A(1) y A(2), mientras que B(5) es el producto de los elementos A(1) a A(5).

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

     1     2     6    24   120

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 el producto acumulativo de las columnas de A. El elemento B(5) es el producto de A(4) y A(5), mientras que B(9) es el producto de los elementos A(7), A(8) y A(9).

B = cumprod(A)
B = 3×3

     1     4     7
     2    20    56
     6   120   504

Cree 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 el producto acumulativo de las filas de A. El elemento B(3) es el producto de A(1) y A(3), mientras que B(5) es el producto de los elementos A(1), A(3) y A(5).

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

     1     3    15
     2     8    48

Cree un arreglo de valores lógicos.

A = [true false true; true true false]
A = 2×3 logical array

   1   0   1
   1   1   0

Encuentre el producto acumulativo de las filas de A.

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

     1     0     0
     1     1     0

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 el producto acumulativo de las columnas. Especifique la opción "reverse" para operar de abajo arriba en cada columna. El resultado tiene el mismo tamaño que A.

B = cumprod(A,"reverse")
B = 3×3

   180    70   180
    20     7    60
     2     1    10

Cree una matriz que contenga valores NaN.

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

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

Calcule los productos acumulativos de la matriz excluyendo los valores NaN. En las columnas de la matriz que contienen valores NaN iniciales, el producto acumulativo es 1 hasta que se encuentra un valor que sea diferente de NaN.

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

     3     5     1     4
     6    30     1    36
     6    90     0    36

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 | 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 cuyo tamaño no es igual a 1.

Considere un arreglo de entrada bidimensional, A.

  • cumprod(A,1) opera en elementos sucesivos de las columnas de A y devuelve los productos acumulativos de cada columna.

  • cumprod(A,2) opera en elementos sucesivos de las filas de A y devuelve los productos acumulativos de cada fila.

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

cumprod 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 cuando se calculan los productos acumulativos. 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 cuando se calculan los productos acumulativos. Si A tiene valores NaN consecutivos iniciales, los elementos correspondientes de B son 1. "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

expandir todo

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

| | | | |