Ever have some data that might have some NaN values? And you start doing computations with these data, expecting |NaN|s to propagate... Only to find later, that the |NaN|s only went so far. Here's what's going on, for better or worse.
I know of 3 typical uses of NaN values:
- to represent missing data
- result of computational ambiguity (e.g., 0/0)
- graphics directive to separate line segments in a single vector of point values
There are several MATLAB functions that ignore NaN valuess, including
any([0 nan]) all([0 nan]) all([1 nan]) any([1 nan])
ans = 0 ans = 0 ans = 1 ans = 1
There are also a bunch of functions in Statistics Toolbox that ignore |NaN|s, including these:
nanmean, nanmin, nanmax, nancov, nanstd, nansum, nanvar, nanmedian
The reason min, max, any and all ignore NaN values is for the the graphics case - where line segments in a line are separated by NaN, and finding the min and max values is useful for setting axis limits.
Have you found the tools you need to work with your data containing NaN values? Do you need to work around them or do you embrace their presence? Let me know here.