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

13 Ansichten (letzte 30 Tage)
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 Kommentare
Will Fritz
Will Fritz am 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 am 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Will Fritz
Will Fritz am 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'

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by