Max and min keeping NaNs

The max and min functions ignore NaN values. These functions keep them like arithmetic functions do.

You are now following this Submission

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.

Example:

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 (2026). Max and min keeping NaNs (https://www.mathworks.com/matlabcentral/fileexchange/44702-max-and-min-keeping-nans), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.0.0.0