Clear Filters
Clear Filters

If else condition for the rainfall

1 view (last 30 days)
Saleem Sarwar
Saleem Sarwar on 1 Oct 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 Comments
Jan
Jan on 1 Oct 2015
Edited: Jan on 1 Oct 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 on 1 Oct 2015
Tell us all coefficient as Q=kiA

Sign in to comment.

Answers (1)

Thorsten
Thorsten on 1 Oct 2015
Edited: Thorsten on 1 Oct 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 Comments
Saleem Sarwar
Saleem Sarwar on 1 Oct 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 on 1 Oct 2015
Runoff(~idx) = (Rainfall(~idx) - 0.2 * (1000/CN -10)^2)./Rainfall(~idx) + 0.8 *(1000/CN -10);

Sign in to comment.

Categories

Find more on MATLAB in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!