Clear Filters
Clear Filters

In an assignment A(I) = B, the number of elements in B and I must be the same.

2 views (last 30 days)
I need to compute runoff for 2 rainfall conditions
1. If rainfall > 5, then runoff = 1000/CN -10;
2. otherwise Runoff = (Rainfall -0.2 (1000/CN -10))^2 / (Rainfall + 0.80* (1000/CN -10)
My code is as follow
clear
>> Rainfall = randi(10,10,1);
>> CN = randi( 25,10,1);
>> idx = Rainfall > 5;
>> Runoff =size(Rainfall,1);
>> Runoff = zeros(Runoff,1);
>> Runoff(idx)= 1000/CN -10;
Runoff(~idx) = (Rainfall(~idx) - 0.2 * (1000/CN -10)^2)./Rainfall(~idx) + 0.8 *(1000/CN -10);
I am getting the following error when running the 1st condition
??? In an assignment A(I) = B, the number of elements in B and
I must be the same.
Could any body help to solve this issue? I am not very familiar with matlab and trying to write script for runoff calculation using Soil Moisture Condition. Thanks and regards, Saleem
  1 Comment
per isakson
per isakson on 2 Oct 2015
Readable questions and responses to comments increases the chance to get a useful answer. This time I formatted your text.

Sign in to comment.

Accepted Answer

Lessmann
Lessmann on 2 Oct 2015
Hi,
your problem is, that the dimensions of Rainfall and CN don't match. Use the the index idx or ~idx on CN. Also the operators in the last line need tweaking to work elementwise.
Here are the changed lines:
Runoff(idx)= 1000/CN(idx) -10;
Runoff(~idx) = (Rainfall(~idx) - 0.2 * (1000./CN(~idx) -10).^2)./Rainfall(~idx) + 0.8 *(1000./CN(~idx) -10);

More Answers (0)

Categories

Find more on Oceanography and Hydrology 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!