How to use two different equations for different ranges of values within an array?

13 views (last 30 days)
I have a range of values, x = 0:0.1:5 as my inputs.
I want to use
Eq.1 when 0 < x <= 1,
and
Eq.2 for 1 < x < 5.
and then plot(x,y)
if (x >= 0) && (x <= 1)
y = x^(0.5)
elseif (x > 1)
y = x^(-0.5)
end
  2 Comments
Will Fritz
Will Fritz on 1 Aug 2018
Is your Eq1: y = x^(0.5) and Eq2: y = x^(-0.5)? Also, what are the specific bounds? The code snippet at the end has different bounds than the two initial bounds you stated
Bixius
Bixius on 1 Aug 2018
yes, Eq1 is y = x^(0.5) and Eq.2 is y = x^(-0.5). and I apologise
I meant to write
if (x >= 0) && (x <= 1)
y = x^(0.5)
elseif (x > 1)
y = x^(-0.5)
end

Sign in to comment.

Accepted Answer

Will Fritz
Will Fritz on 1 Aug 2018
The following should work for your intended restrictions.
% initialize x
x = 0:0.1:5;
% initialize y with all zeros
y = zeros(1,numel(x));
for i = 1:numel(x)
if (x(i) >= 0) && (x(i) <= 1)
y(i) = x(i)^0.5;
else
y(i) = x(i)^(-0.5);
end
end
plot(x,y)
Check out this regarding for loops: MATLAB Doc 'for loop'
Also this, regarding if statements: MTALAB Doc 'if, elsif, else'

More Answers (0)

Categories

Find more on Performance and Memory 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!