Max and min keeping NaNs

The max and min functions ignore NaN values. These functions keep them like arithmetic functions do.
Updated 12 Dec 2013

View License

Most arithmetic operations propagate NaN values, but max and min ignore them. For example 3+NaN and sum([3 NaN]) return NaN, but max(3, NaN) and max([3 NaN]) return 3.

Sometimes it is useful for max and min to behave like other arithmetic functions. For example, if you wish to set all the negative values in a vector to 0, using max(v, 0), you may not wish also to remove NaNs representing missing data points.

maxNan and minNan are functions which can be used in place of max and min but which return a NaN wherever a comparison with a NaN took place. The various combinations of arguments and results accepted by by max/min are also accepted by maxNan/minNan.


max([1 2 3; 4 NaN 0])

returns [4 2 3] but

maxNan([1 2 3; 4 NaN 0])

returns [4 NaN 3].

(Note that nanmax and nanmin in the statistics toolbox are the same as max and min.)

Cite As

David Young (2024). Max and min keeping NaNs (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2013b
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