Filter löschen
Filter löschen

How to plot function with discontinous range

1 Ansicht (letzte 30 Tage)
Nikhil
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

Akzeptierte Antwort

Walter Roberson
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)

Community Treasure Hunt

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

Start Hunting!

Translated by