Filter löschen
Filter löschen

If else condition for the rainfall

1 Ansicht (letzte 30 Tage)
Saleem Sarwar
Saleem Sarwar am 1 Okt. 2015
I have series of daily rainfall data, computed curve number (CN). To compute runoff, I need to fulfill these two conditions
if Rainfall > 0.2
then Runoff = 1000/CN -10
else
Runoff =( Rainfall -0.2 * (1000/CN -10)^2)/Rainfall + 0.8 *(1000/CN -10)
Could any body suggest code for this? I tried to use following script
Runoff = ones(size(Rainfallinches));
>> idx = Rainfallinches >0.2;
>> Runoff(idx)= (1000* 1/Curvenumber -10);
but this doesnot work Kind regards, Saleem
[EDITED, Jan, copied from a new thread:]
My data is as follow Rainfall CN 8 65 2 66 6 88 8 73 5 63 4 65 6 66 5 88 1 73 2 63 3 65 5 66 1 88 5 73 10 63 4 65 3 66 3 88 4 73 3 63 I want to compute Runoff for the following conditions if Rainfall >10 then Runoff = 1000/CN-10 otherwise Runoff = (Rainfall - 0.2 * (1000/CN -10)^2)/Rainfall + 0.8 *(1000/CN -10) Please suggest me code for that kind of data.
  3 Kommentare
Jan
Jan am 1 Okt. 2015
Bearbeitet: Jan am 1 Okt. 2015
Please do not open a new thread to provide data for an open question. This is too confusing for the readers.
If you post values, please use a form, which can be inserted in Matlab's command window by copy&paste. Only then it is clear to the readers. What are the size and type of the variables Rainfallinches and Curvenumber? And again: Please explain what "it does not work" mean. Give us a chance to help you.
Eng. Fredius Magige
Eng. Fredius Magige am 1 Okt. 2015
Tell us all coefficient as Q=kiA

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Thorsten
Thorsten am 1 Okt. 2015
Bearbeitet: Thorsten am 1 Okt. 2015
You didn't mention what went wrong; the following code should work for you:
Rainfall = rand(1,10); % fake some data
CN = 23; % assume it is a scalar, fake some value
idx = Rainfall > 0.2;
Runoff(idx) = 1000/CN - 10;
Runoff(~idx) = (Rainfall - 0.2 * (1000/CN -10)^2)/Rainfall + 0.8 *(1000/CN -10);
  2 Kommentare
Saleem Sarwar
Saleem Sarwar am 1 Okt. 2015
Thanks Thorsten for your reply. There seem to be some error in this code. My data is as follow Rainfall CN 8 65 2 66 6 88 8 73 5 63 4 65 6 66 5 88 1 73 2 63 3 65 5 66 1 88 5 73 10 63 4 65 3 66 3 88 4 73 3 63 I want to compute Runoff for the following conditions if Rainfall >10 then Runoff = 1000/CN-10 otherwise Runoff = (Rainfall - 0.2 * (1000/CN -10)^2)/Rainfall + 0.8 *(1000/CN -10) Please suggest me code for that kind of data.
Kind regards, Saleem
Walter Roberson
Walter Roberson am 1 Okt. 2015
Runoff(~idx) = (Rainfall(~idx) - 0.2 * (1000/CN -10)^2)./Rainfall(~idx) + 0.8 *(1000/CN -10);

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!

Translated by