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

2 次查看(过去 30 天)
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;

采纳的回答

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

更多回答(1 个)

Steven Lord
Steven Lord 2022-11-9
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

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by