Generating a Plot For a Function, HELP
1 view (last 30 days)
Show older comments
When i go to run this code, it just keeps telling me to 'Enter a Value:' and will not show me any plot. I understand that this is my input, but i just want it to plot the values of x for (-10:10). Am i using the right commands?
function output=myfun(x)
x=input('Enter a Value:');
if x<-2
output=-x.^2;
elseif (-2<=x)&&(x<0)
output=-2.*x;
elseif (0<=x)&&(x<=2) output=2.*x;
elseif x>2
output=x.^2;
end
fplot(myfun(-10:10),output)
xlabel('x(m)')
ylabel('f(x)')
0 Comments
Accepted Answer
Geoff Hayes
on 3 Jul 2014
David - the code is getting stuck due to its recursive nature. The line
fplot(myfun(-10:10),output)
calls itself, passing the vector -10:10, only to reach this line again and again. So that is why the request for an input keeps popping up.
If you are just trying to plot the data from -10:10, then you can skip the request for an input and just define your function as follows
function [output] = myfun(x)
if x<-2
output=-x^2;
elseif (-2<=x)&&(x<0)
output=-2*x;
elseif (0<=x)&&(x<=2)
output=2*x;
elseif x>2
output=x^2;
end
Now to plot your above function for the interval [-10,10], just do something similar to what you had already, using fplot
fplot(@myfun,[-10,10])
More Answers (0)
See Also
Categories
Find more on Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!