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 ;

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
Simbarashe Chidzambwa
Simbarashe Chidzambwa on 10 Nov 2022
Thank you very much Stephen, though the number represents missing values.

Sign in to comment.

Categories

Find more on Data Preprocessing in Help Center and File Exchange

Tags

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!