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

13 次查看(过去 30 天)
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 个评论
Will Fritz
Will Fritz 2018-8-1
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 2018-8-1
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

请先登录,再进行评论。

采纳的回答

Will Fritz
Will Fritz 2018-8-1
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'

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Performance and Memory 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by