Compute the cumulative product of matrices, specifying the treatment of NaNs.
Updated 1 Sep 2016

View License

nancumprod: Cumulative product of a matrix, with user-specified treatment of NaNs.
Computes the cumulative product of matrix A along dimension DIM, allowing the user to replace NaNs with ones, or to maintain NaNs as placeholders.

USAGE: B = nancumprod(A, DIM, NMODE)


A: Input matrix.

B: Output cumulative product matrix, treating NaNs as determined by nmode.

DIM: B = nancumprod(A, DIM) returns the nan-cumulative product of the elements along the dimension of A specified by scalar DIM. For example, nancumprod(A,1) works down the columns, nancumprod(A,2) works across the rows. If DIM is not specified, it defaults to the first non-singleton dimension of A.

NMODE: specifies how NaNs should be treated. Acceptable values are:
1: REPLACE NaNs with ones (default).
2: MAINTAIN NaNs as position holders in B. (Skip NaNs without reset.)
3: RESET product to 1 on NaNs, replacing NaNs with ones.
4: RESET product to 1 on NaNs, maintaining NaNs as position holders.

See also: cumprod, nancumprod, nansum, nanmean, nanmedian, ...
(nancumsum is available from the FEX; other nan* functions may require Toolboxes)

Cite As

Brett Shoelson (2024). nancumprod (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2007a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on NaNs in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Updated license

Fixed a doc bug, and ensured R2014b readiness.

Fixes an issue with the vectorization of mode 3.

This submission fixes a bug found by a couple of attentive users. I have also added new options for treating NaNs, and eliminated (as unnecessary) special handling of vectors.

Updated M file and license text file copyright to The MathWorks, Inc.

added copyright

Fixing a typo i the description. No code change.