Cómo calcular el producto acumulativo en MATLAB

El producto acumulativo de una secuencia es un producto continuo o productos parciales de una secuencia

Los productos acumulativos de la secuencia {a,b,c,…}, son a, a*b, a*b*c, ….

Matlab nos permite calcular el producto acumulativo de una array vectorial utilizando el método cumprod() . Las diferentes sintaxis del método cumprod() son

  • B = cumprod(A)
  • B = cumprod(A,dim)
  • B = cumsprod(___,dirección)
  • B = cumprod(___,bandera nan)

Ahora discutiremos las sintaxis anteriores en detalle:

B = cumprod(A)

  • El método devuelve el producto acumulativo de A comenzando al principio de la array A.
  • Si A es un vector , entonces devuelve el producto acumulativo de la secuencia A
  • Si A es una array , entonces devuelve el producto acumulado a lo largo de cada columna de A.

Ejemplo 1:

Matlab

% Input vector
A = 2:8;
 
B = cumprod(A);
 
% Displays cumulative
% products of A
disp(B)

Producción :

Ejemplo 2:

Matlab

% Input matrix
A = [1 4 7; 2 5 8; 3 6 9];
disp("Matrix :")
disp(A)
 
B = cumprod(A);
% Display cumulative product of matrix A
disp("Cumulative product :")
disp(B)

Producción :

B = cumprod(A,dim)

  • Devuelve el producto acumulado de la array A junto con cada dim .
  • dim toma dos valores 1 o 2 .
  • dim = 1 , se refiere a lo largo de cada columna .
  • dim = 2 , se refiere a lo largo de cada fila .

Matlab

% input matrix
A = [1 3 5; 2 4 6];
disp("Matrix :")
disp(A)
 
% Cumulative product along each
% row from left to right
B = cumprod(A,2);
disp("Cumulative product :")
disp(B);

Producción :
 

B = cumprod(___,dirección)

  • Devuelve el producto acumulativo del vector o array de entrada en la dirección dada .
  • dirección toma dos valores ‘adelante’ o ‘reversa’
  • Si la dirección es ‘inversa’, calcula el producto acumulativo al revés, es decir, si estamos considerando la array a lo largo de cada columna, devuelve el producto acumulativo comenzando desde abajo hacia arriba en cada columna .

Matlab

% input matrix
A = [1 3 5; 2 4 6];
disp("Matrix :")
disp(A)
 
% Cumulative product of A along each row
% starting from right to left
B = cumprod(A,2,'reverse');
disp("Cumulative product :")
disp(B)

Producción :

B = cumprod(___,bandera nan)

  • El valor de nanflag decide si incluir o excluir el valor NaN del vector en el producto acumulativo o no.
  • nanflag toma dos valores ‘includenan’ u ‘omitnan’ que corresponde a incluir elementos NaN y excluir elementos NaN respectivamente.
  • ‘omitNaN’ considera los valores de NaN como 1.

Nota: NaN * número = NaN

Matlab

% Input vector
A = [3 5 NaN 9 0 NaN];
disp("Vector :");
disp(A);
 
% Including NaN values
B = cumprod(A,'includenan');
disp("Cumulative product Include NaN :");
disp(B);
 
% Excluding NaN values
B = cumprod(A,'omitnan');
disp("Cumulative product Exclude NaN :");
disp(B);

 Producción :

Publicación traducida automáticamente

Artículo escrito por ManikantaBandla y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *