Creating a set range for a function

12 views (last 30 days)
Hi guys,
Im trying to create a if fucnction where my equation works for a set range of x values.
My code at the moment:
x = (mydata);
if (x < 3) && (x > 25)
windTurbineRotorModel(x == 0);
elseif (3 < x) && (x < 11)
windTurbineRotorModel = (0.042)*(1/2)*(1.23)*pi()*((171/2)^3)*(x).^2;
elseif (11 < x) && (x < 25)
windTurbineRotorModel = (0.042)*(1/2)*(1.23)*pi()*((171/2)^3)*(x).^2;
end
Thanks

Accepted Answer

Alan Stevens
Alan Stevens on 3 Dec 2021
(x < 3) && (x > 25)
An individual element of x can't be both less than 3 and greater than 25 at the same time.
If here are many values of x (as is likely), then do the tests element by element. e.g. something like:
for i = 1:numel(x)
if (x(i) < 3) || (x(i) > 25)
windTurbineRotorModel(x == 0);
elseif (3 < x(i)) && (x(i) < 11)
windTurbineRotorModel = (0.042)*(1/2)*(1.23)*pi()*((171/2)^3)*(x(i)).^2;
elseif (11 < x(i)) && (x(i) < 25)
windTurbineRotorModel = (0.042)*(1/2)*(1.23)*pi()*((171/2)^3)*(x(i)).^2;
end
end
  2 Comments
Sebastian Sunny
Sebastian Sunny on 3 Dec 2021
That makes alot more sense thank you
but in your code what does te numel(x) mean?
Alan Stevens
Alan Stevens on 3 Dec 2021
numel(X) is the number of elements in X.

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!