In an assignment A(I) = B, the number of elements in B and I must be the same.
1 view (last 30 days)
Show older comments
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
on 2 Oct 2015
Readable questions and responses to comments increases the chance to get a useful answer. This time I formatted your text.
Accepted Answer
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);
0 Comments
More Answers (0)
See Also
Categories
Find more on Oceanography and Hydrology in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!