a function just valid over a certain range

Hello everyone, let me ask
a formula is expressed mathematically as follows
Y = x^2 + 3x + 1 , for 2<x<8;
Y = 0 for else (x<2 or x>8)
then I would plot Y value for Y within 0<x<10.
in excel I succeeded by writing the following formula
=IF(AND(x >= 2, x<=8), x^2+3x+1, 0)
with similar logic, I write this in Matlab
x = 0:0.1:10 ;
if 2 <= x <= 8
y = x.^2+3.*x+1 ;
else
y = 0
end
plot(x,y)
please see the graph above, which for the value of Y at x < 2 is not 0

1 Kommentar

The simple MATLAB approach is to use logical indexing:
x = 0:0.1:10;
y = x.^2+3.*x+1;
y(x<2 | x>8) = 0;
plot(x,y)

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

VBBV
VBBV am 31 Jul. 2023
x = 0:0.1:10 ;
for k = 1:length(x)
if x(k) >= 2 & x(k)<= 8
y(k) = x(k).^2+3.*x(k)+1 ;
else
y(k) = 0;
end
end
plot(x,y)

2 Kommentare

Use the logical condition to check for values lying between 2 and 8 as below
if x(k) >= 2 & x(k)<= 8
Satriyo
Satriyo am 31 Jul. 2023
Thanks for your answer.
Best Regards,

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Language Fundamentals finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 31 Jul. 2023

Kommentiert:

am 31 Jul. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by