How do I replace -1.0000e+30 with NaN?

1 view (last 30 days)
I want to replace -1.0000e+30 in an array of SST and used the following but its not working why?:
data=netcdf.open('HadISST_sst1.nc','NC_NOWRITE')
time=netcdf.getVar(data,0);
time_bnds=netcdf.getVar(data,1);
lat=netcdf.getVar(data,2);
lon=netcdf.getVar(data,3);
sst=netcdf.getVar(data,4);
sst(sst==-1.0000*1e+30)=NaN;

Accepted Answer

KSSV
KSSV on 9 Nov 2022
Let T be your array.
tol = -10^10 ; % fix this to satisfied value
T(T<tol) = NaN ;
  3 Comments

Sign in to comment.

More Answers (1)

Steven Lord
Steven Lord on 9 Nov 2022
Since I'm guessing -1e30 is an outlier in your data you could use filloutliers. I'll use a slightly smaller outlier value for this example because it makes y display more nicely.
y = 1:10;
y(7) = 100
y = 1×10
1 2 3 4 5 6 100 8 9 10
y2 = filloutliers(y, NaN)
y2 = 1×10
1 2 3 4 5 6 NaN 8 9 10
  2 Comments

Sign in to comment.

Tags

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!