How to plot function
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I'm working on a question where I am executing a function y = staircase(x) where
y = [ 0 if x <= 1 , 1 for 1<x<=2 & 2 if 2<x ]
So far I have;
function y = staircase(x)
for x = -3:0.01:3
if x <= 1
y = 0;
elseif x > 1 && x <= 2
y = 1;
else x > 2;
y = 2;
end
end
My question is how do I plot such a function?
0 Kommentare
Antworten (3)
Ben11
am 29 Jul. 2014
A lazy way would be like this:
figure
hold on
plot((-3:0.01:1),0,(1.01:0.01:2),1,(2.01:0.01:3),2,'LineWidth',2)
line('XData',[1 1],'YData',[0 1],'LineStyle',':');
line('XData',[2 2],'YData',[1 2],'LineStyle',':');
hold off
which gives this:
Do you need to write the plotting part in your function or you simply want to look at the staircase for some other purpose?
0 Kommentare
Azzi Abdelmalek
am 29 Jul. 2014
Bearbeitet: Azzi Abdelmalek
am 29 Jul. 2014
x is an input argument, you can't assign values to x inside the function.
save this function as staircase.m
function y = staircase(x)
for k=1:numel(x)
if x (k)<= 1
y(k) = 0;
elseif x(k) > 1 && x(k) <= 2
y(k) = 1;
else x(k) > 2
y(k)= 2;
end
end
Then in Matlab Windows Command or in a new script write
x=-3:0.1:3 ; %assign values to x
y = staircase(x);
plot(x,y)
4 Kommentare
Ben11
am 30 Jul. 2014
As Azzi suggested, you have to define x before you call staircase. I ran his code and it works well. Do the following:
1) Define x in the command window
x = -3:0.1:3;
2) Once this is done, you can then call staircase(x) and plot the result:
y = staircase(x);
plot(x,y)
Star Strider
am 29 Jul. 2014
I built my own staircase function, because I didn’t want to create a separate function file.
This is how I plotted it:
x = -3:0.01:3;
staircase = @(x) [(0*(x <= 1)) + (1*((x > 1) & (x <= 2))) + (2*(x > 2))];
sc = staircase(x);
figure(1)
plot(x, sc)
axis([xlim -0.5 2.5])
The axis call makes it visible over its range.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Annotations 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!