If Else Statement for the rainfall data
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Saleem Sarwar
il 1 Ott 2015
Risposto: Andrei Bobrov
il 1 Ott 2015
I have a time series of daily rainfall data from 1950 to 2013. I want to implement following conditions to the data if rainfall is less than 0.5 then 1 , if rainfall is between 0.5 to 1.1 then 2 otherwise 3. How to write the code for this analysis?
0 Commenti
Risposta accettata
Walter Roberson
il 1 Ott 2015
function rlev = rain_level(rainfall)
rlev = ones(size(rainfall));
idx = rainfall > 0.5 & rainfall < 1.1;
rlev(idx) = 2;
idx = rainfall >= 1.1 | rainfall == 0.5;
rlev(idx) = 3;
end
The "rainfall == 0.5" is necessary because 0.5 exactly is not less than 0.5 and is not between 0.5 and 1.1 either; you indicated 3 "otherwise" so the 3 has to apply to all ranges not listed, including the 0.5 exactly.
1.1 exactly cannot happen in binary floating point (1/10th is an infinite repeating number in binary) so the question of whether 1.1 exactly belongs in level 2 or 3 becomes irrelevant, and we might as well code >= on the 1.1 for clarity.
0 Commenti
Più risposte (1)
Andrei Bobrov
il 1 Ott 2015
[~,~,ii]=histcounts(data_of_daily_rainfall,[-inf,.5,1.1,inf]);
y = 1:3;
out = y(ii);
0 Commenti
Vedere anche
Categorie
Scopri di più su Data Type Conversion in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!