Setting up and plotting functions
6 次查看(过去 30 天)
显示 更早的评论
I'm quite new to matlab and I'm trying to grasp how to write functions and plot them as well.
One of my excercises in class asks me to:
"Make a function that plots the equation ax^2+bx+c=0, where a,b,c and x are used as input."
Does that mean I need to define values for a,b,c and x first, in order to plot anything?
Not sure how to best approach this in matlab.
My code so far looks like this:
function F(x,a,b,c);
y = a*x.^2+b*x+c;
plot(x,y)
end
But that doesn't plot anything as it is though..
I was hoping on some input on how to setup a good solution here, or maybe just a simple way by assigning values to the variables.. - Again, my coding skills are completely beginner, so any help is appreciated.
2 个评论
Adam
2020-1-31
That should work, for a simple case (i.e. it will plot on whatever the current axis is or create one if none exists), if you call it as e.g.
a = 3;
b = 4;
c = 5;
x = 0:0.1:10;
F( x, a, b, c )
I haven't really put any thought into appropriate values for a, b, c and x there, but that would be the general idea. Don't just hit the big green 'run' button as it is a function that requires you to pass in 4 arguments.
采纳的回答
edward holt
2020-1-31
It's rough, but I'm also quite new to Matlab.
You answered your own question - you do need to define x, a, b and c.
x needs to be a vector (a series of values over which your function evaluates).
% xmin and xmax define the range over which your function plots
% xres defines how often a point is plotted (low number - smooth curve,
% high number, rough)
inputs = inputdlg({'x min','x max','x resolution','a','b','c'},'input)')
xmin = str2num(inputs{1})
xmax = str2num(inputs{2})
xres = str2num(inputs{3})
a = str2num(inputs{4})
b = str2num(inputs{5})
c = str2num(inputs{6})
x = xmin:xres:xmax
f(x,a,b,c)
function f(x,a,b,c)
y = a*x.^2+b*x+c;
plot(x,y)
end
更多回答(1 个)
Jakob B. Nielsen
2020-1-31
It does, indeed, need to be given some inputs. Matlab has no way of knowing what a, b, c and x are.
function F(x,a,b,c);
y = a*x.^2+b*x+c;
plot(x,y)
end
It will work, but you need to tell it inputs. E.g. in the command window try making an x vector for example x=1:0.01:100; and then call your function with some variables for a, b and c that you can pretty much make up as you want. For example
F(x,1,2,3)
That will execute the funtion y=1*x.^2+2*x+3 and then plot x,y.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 General Applications 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!