If else condition for the rainfall

10 vues (au cours des 30 derniers jours)
Saleem Sarwar
Saleem Sarwar le 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 commentaires
Jan
Jan le 1 Oct 2015
Modifié(e) : Jan le 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 le 1 Oct 2015
Tell us all coefficient as Q=kiA

Connectez-vous pour commenter.

Réponses (1)

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

Connectez-vous pour commenter.

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

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

Start Hunting!

Translated by