How to plot function with discontinous range
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Nikhil
am 4 Okt. 2013
Kommentiert: Nikhil
am 4 Okt. 2013
Hey, I want to plot P(x) over x=-10:0.5:20
P(x) is defined as
P(x)= x for 0=<x=<1;
= 2-x for 1<=x<=2;
P(x) is zero at other points.
For this I have written following code:
dx=1; xx=1:dx:20;
for i=1:1:20;
fp(1,i)=bilinear(i);
end
plot(xx',fp');
function [ z ] = bilinear( x )
if (1>=x>=0)
z=x;
elseif (2>=x>=1)
z=2-x;
else
z=0;
end
end
But after running this code, I am not getting the triangular plot which I want. Can somebody tell me where is my logic wrong?
Thanks in advance,
Nikhil
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 4 Okt. 2013
1>=x>=0 does not do a range comparison in MATLAB. Instead it tests ((l>=x)>=0) . The l>=x subexpression will return true (1) or false (0) . Both 0 and 1 are >= 0, so the outer comparison will always return true.
Use 0 <= x & x <= 1
And after you have done the assignment, read up on logical indexing.
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!