Hello,
I am trying to read nc file and it contains values (-177.6600, -177.6500, -177.6300, -177.5900, -177.5700). I want to assign NaN to all these values (there is a huge number of these values).I tried the following code but it didn't remove the maximum value i.e., -177.5700.
Temp = ncread('G\01.06.17\NC_H08_20170601_0500_L2CLP010_FLDK.02401_02401.nc', 'Temperature');
Temp(Temp<=-177.5700)= NaN;
Kindly help.
Thank you.

4 Kommentare

KSSV
KSSV am 1 Mär. 2021
What have you tried is correct. What made you to tell that the value is not replaced with NaN? What is size of Temp?
IMC
IMC am 1 Mär. 2021
Size of temp is 2401*2401
This is the result after running code. -177.5700 values are still present.
KSSV
KSSV am 1 Mär. 2021
Try:
tol = 10^-3 ;
Temp(Temp<=-(177.5700+tol))= NaN;
IMC
IMC am 1 Mär. 2021
Unfortunately, It didn't work.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

David Hill
David Hill am 1 Mär. 2021

0 Stimmen

You might try rounding to 4 decimal places first
Temp=round(Temp,4);
Temp(ismember(Temp,[-177.6600, -177.6500, -177.6300, -177.5900, -177.5700]))=nan;

1 Kommentar

IMC
IMC am 1 Mär. 2021
Thanks David!. It tried using your lines of code and it worked.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Allen
Allen am 1 Mär. 2021

0 Stimmen

A slightly more simple approach:
Temp(round(Temp,4)<=-177.57)= NaN;

Tags

Gefragt:

IMC
am 1 Mär. 2021

Kommentiert:

IMC
am 2 Mär. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by