File Exchange

image thumbnail

Max and min keeping NaNs

version 1.0.0.0 (2.22 KB) by David Young
The max and min functions ignore NaN values. These functions keep them like arithmetic functions do.

0 Downloads

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.

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

Comments and Ratings (1)

David Young

NOTE: From R2015a onwards this is superseded by the normal max function with the MISSING argument set to 'includenan'.

MATLAB Release Compatibility
Created with R2013b
Compatible with any release
Platform Compatibility
Windows macOS Linux