[TOC]

cumprod

Cumulative product

Usage

cumprod(A)

cumprod(A, dim)

cumprod(A, option)

cumprod(A, dim, option)

cumprod(A, option1, option2)

cumprod(A, dim, option1, option2)

OptionMeaningDefault
'forward'The cumulative products are obtained in the forward direction.Default for cumsum, cumprod, cummin, cummax
'reverse'The cumulative products are obtained in the reverse direction.Not default for cumsum, cumprod, cummin and cummax
'includenan'Include NaN in the calculationDefault for cumsum, cumprod
'omitnan'Omit NaN in the calculationDefault for cummax, cummin

Examples

Input
% Matrix of size [3,4]
a = reshape(1:12,3,4)
% Cumulative products
cumprod(a)
Output
a = 
 1.0000   4.0000   7.0000   10.000
 2.0000   5.0000   8.0000   11.000
 3.0000   6.0000   9.0000   12.000

ans = 
 1.0000   4.0000   7.0000   10.000
 2.0000   20.000   56.000   110.00
 6.0000   120.00   504.00   1320.0
Input
% Matrix of size [3,4]
A = reshape(1:12,3,4)
% Cumulative products along 2nd dimension
p = cumprod(A,2)
Output
A = 
 1.0000   4.0000   7.0000   10.000
 2.0000   5.0000   8.0000   11.000
 3.0000   6.0000   9.0000   12.000

p = 
 1.0000   4.0000   28.000   280.00
 2.0000   10.000   80.000   880.00
 3.0000   18.000   162.00   1944.0
Input
a = [1:5 nan 6]

% Default options
disp('Include nan, forward')
cumprod(a)

% Include nan, forward direction
disp('Include nan, forward.')
cumprod(a, 'includenan')

% Omit NaN, forward
disp('Omit nan, forward')
cumprod(a, 'omitnan')

% Include nan, forward
disp('Include nan, forward')
cumprod(a, 'forward')

% Include nan, reverse direction
disp('Include nan, reverse')
cumprod(a, 'reverse')
Output
a = 
 1.0000   2.0000   3.0000   4.0000   5.0000   NaN      6.0000

Include nan, forward

ans = 
 1.0000   2.0000   6.0000   24.000   120.00   NaN      NaN   

Include nan, forward.

ans = 
 1.0000   2.0000   6.0000   24.000   120.00   NaN      NaN   

Omit nan, forward

ans = 
 1.0000   2.0000   6.0000   24.000   120.00   120.00   720.00

Include nan, forward

ans = 
 1.0000   2.0000   6.0000   24.000   120.00   NaN      NaN   

Include nan, reverse

ans = 
 NaN      NaN      NaN      NaN      NaN      NaN      6.0000