30.matlab使用fplot命令绘制一元函数图像
- 格式:docx
- 大小:41.99 KB
- 文档页数:3
Matlab二维绘图fplot语句的帮助应用示例一、每种语句格式的使用说明二、每种语句格式的应用示例(1)fplot(f)应用举例fplot(@(x)cos(x));(2)fplot (f, xinterval) 应用举例:xinterval——[Xmin, Xmax] fplot(@(x)cos(x), [-pi,pi]);(3)fplot (funx, funy)应用举例——相当于画带参数的函数(4)fplot( funx, funy, tinterval)应用举例:tinterval——[tmin tmax](5)fplot(___, LineSpec)的应用举例fplot(@(x)exp(x),[-3 0],'--*y');hold on; %在一张图上画多个函数fplot(@(x)cos(x),[0 3],'-.^b');fplot(@(x)sin(x),[3,6],'-+g');grid on %加网格线(6)fplot (___,Name, Value)的应用举例绘制具有不同相位的三个正弦波。
对于第一个,使用 2 磅的线宽。
对于第二个,指定带有圆圈标记的红色虚线线型。
对于第三个,指定带有星号标记的青蓝色点划线线型。
其中第一条语句的’Linewidth’对应name;2对应value。
后附线条属性及各种标记的值,及常用的name, value的值(7)fplot(ax,___)的应用举例(8)fp = fplot(___)的应用举例通过使用圆点表示法设置属性,将线条更改为红色点线。
添加交叉标记,并将标记颜色设置为蓝色。
(9)[x,y] = fplot(___)的应用举例添加标题和轴标签添加标题和轴标签并格式化刻度使用gca 访问当前坐标轴对象。
沿x 轴以为间隔显示刻度线。
通过设置坐标轴对象的XTick 和XTickLabel 属性,格式化x 轴刻度值。
Matlab中函数图形的三种绘制方法及局部和全局解
绘制函数的图形2
x
fπ区间[-1,2]
=x
)
10
sin(+
1 利用plot绘制
x=linspace(-1,2,1000);
y=x.*sin(10*pi*x)+2;
plot(x,y)
/ 函数的显式表达式,先设置自变量向量,然后根据表达式计算出函数向量/
2 利用fplot绘制
f='x.*sin(10*pi*x)+2';或f='x*sin(10*pi*x)+2';
fplot(f,[-1,2],1e-4)
/fplot函数可以自适应地对函数进行采样,能更好地反映函数的变化规律/
3 利用ezplot绘制
f='x*sin(10*pi*x)+2';
ezplot(f,[-1,2])
/隐函数绘图:如果函数用隐函数形式给出,可以利用ezplot函数绘制隐函数图形/
1和2 3的区别是2 3可以直接按照函数的原形直接写出,而1中变量相乘或除时都以点乘和点除的形式写出来的
尝试用fminbnd fminunc fminsearch及遗传算法求解上述函数在区间[-1,2]中的最小值,看看它们四个有什么不同?。
MATLAB绘图与图形处理人们很难从一大堆原始的数据中发现它们的含义,而数据图形恰能使视觉感官直接感受到数据的许多内在本质,发现数据的内在联系。
MATLAB可以表达出数据的二维,三维,甚至四维的图形。
通过图形的线型,立面,色彩,光线,视角等属性的控制,可把数据的内在特征表现得淋漓尽致。
下面我们分别介绍图形的命令。
7.1 二维图形7.1.1 基本平面图形命令命令1 plot功能线性二维图。
在线条多于一条时,若用户没有指定使用颜色,则plot循环使用由当前坐标轴颜色顺序属性(current axes ColorOrder property)定义的颜色,以区别不同的线条。
在用完上述属性值后,plot又循环使用由坐标轴线型顺序属性(axes LineStyleOrder property)定义的线型,以区别不同的线条。
用法plot(X,Y) 当X,Y均为实数向量,且为同维向量(可以不是同型向量),X=[x(i)],Y=[y(i)],则plot(X,Y)先描出点(x(i),y(i)),然后用直线依次相连;若X,Y为复数向量,则不考虑虚数部分。
若X,Y均为同维同型实数矩阵,X = [X(i)],Y = [Y(i)],其中X(i),Y(i)为列向量,则plot(X,Y)依次画出plot(X(i),Y(i)),矩阵有几列就有几条线;若X,Y中一个为向量,另一个为矩阵,且向量的维数等于矩阵的行数或者列数,则矩阵按向量的方向分解成几个向量,再与向量配对分别画出,矩阵可分解成几个向量就有几条线;在上述的几种使用形式中,若有复数出现,则复数的虚数部分将不被考虑。
plot(Y) 若Y为实数向量,Y的维数为m,则plot(Y)等价于plot(X,Y),其中x=1:m;若y 为实数矩阵,则把y按列的方向分解成几个列向量,而y 的行数为n,则plot(Y)等价于plot(X,Y)其中x=[1;2;…;n];在上述的几种使用形式中,若有复数出现,则复数的虚数部分将不被考虑。
Matlab中使用Plot函数动态画图方法总结Matlab除了强大的矩阵运算,仿真分析外,绘图功能也是相当的强大,静态画图没什么问题,由于Matlab本身的多线程编程缺陷,想要动态的画图,并且能够很好的在GUI中得到控制,还不是一件很容易的事情,下面总结几种方法。
一. AXIS 移动坐标系这种方法是最简单的一种方法,适合于数据已经全部生成的场合,先画图,然后移动坐标轴。
实例代码如下:%%%先画好,然后更改坐标系%在命令行中使用Ctrl+C 结束t=0:0.1:100*pi;m=sin(t);plot(t,m);x=-2*pi;axis([x,x+4*pi,-2,2]);grid onwhile 1if x>max(t)break;endx=x+0.1;axis([x,x+4*pi,-2,2]); %移动坐标系pause(0.1);end二. Hold On 模式此种方法比较原始,适合于即时数据,原理是先画上一帧,接着保留原始图像,追加下一幀图像,此种方式比较繁琐,涉及画图细节,并且没有完整并连续的Line对象数据。
例如:%%% Hold On 法% 此种方法只能点,或者分段划线hold offt=0;m=0;t1=[0 0.1]; %要构成序列m1=[sin(t1);cos(t1)];p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5);x=-1.5*pi;grid on;for i=1:100hold ont=0.1*i; %下一个点m=t-floor(t);t1=t1+0.1; %下一段线(组)m1=[sin(t1);cos(t1)];p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5);x=x+0.1;axis([x x+2*pi -1.5 1.5]);pause(0.01);end三. Plot 背景擦除模式这种模式比较适合画动画,效率比较高,刷新闪烁小,适合即时数据,最终的Line结构数据完整。
实验作业2MATLAB作图1、用plot,fplot绘制函数y=cos(tan( x))的图形。
解:代码如下:x=linspace,,30);y=cos(tan(pi*x));plot(x,y)结果:fplot('[cos(tan(pi*x))]',[,])结果:注意事项:fplot('[cos(tan(pi*x))]',[,])不能写成fplot('[cos(tan(pi*x))]',(,))否则是错误程序。
2.用ezplot绘制函数exy-sin(x+y)=0在[-3,3]上的图形。
解:代码如下:ezplot('exp(x*y)-sin(x+y)=0',[-3,3])3.用matlab以动画的方式绘制出摆线x=a(t-sint)y=a(1-cost)(a 自己赋值)的渐屈线clear;clc;close;a=1;symstx=a*(t-sin(t));y=a*(1-cos(t));ezplot(x,y,[0,2*pi]),gridon;holdon;dy=diff(y)/diff(x);dyy=diff(dy)/diff(x);xx=x-(1+dy^2)*dy/dyy;%渐屈线的坐标yy=y+(1+dy^2)/dyy;M=50;t=0;xxx=subs(xx);yyy=subs(yy);H1=plot(xxx,yyy,'r');holdon;gridon ;axis([0,7,,]);x1=subs(x);y1=subs(y);H2=plot([x1,xxx],[y1,yyy],'k--');H3=plot(x1,y1,'ko');H4=plot(xxx,yyy,'ro');tt=linspace(0,2*pi,M);fori=1:Mpause;t=tt(1:i);xxx=subs(xx);yyy=subs(yy);x1=subs(x);y1=subs(y);set(H1,'xdata',xxx,'ydata',yyy);set(H2,'xdata',[x1(i),xxx(i)],'ydata',[y1(i),yyy(i)]);set(H3,'xdata',x1(i),'ydata',y1(i));set(H4,'xdata',xxx(i),'ydata',yyy(i));end绘制函数⎩⎨⎧-=-=)cos 1()sin (t a y t t a x 在]2,0[π∈t 上的图形。
【matlab基础篇03】⼀⽂带你全⾯了解plot绘图函数的使⽤(超详细+图⽂并茂)快速⼊门matlab,系统地整理⼀遍,如何你和我⼀样是⼀个新⼿,那么此⽂很适合你;⽂章⽬录1 前⾔如果你是和我⼀样的⼩⽩,强烈推荐看看这⾥,需要合理地利⽤官⽅的⽂档,通常我觉得官⽅⽂档是最好的,没有之⼀,在命令终端输⼊help plot,可以看到详细的帮助⽂档;具体如下;>> help plotplot Linear plot.plot(X,Y) plots vector Y versus vector X. If X or Y is a matrix,then the vector is plotted versus the rows or columns of the matrix,whichever line up. If X is a scalar and Y is a vector, disconnectedline objects are created and plotted as discrete points vertically atX.plot(Y) plots the columns of Y versus their index.If Y is complex, plot(Y) is equivalent to plot(real(Y),imag(Y)).In all other uses of plot, the imaginary part is ignored.Various line types, plot symbols and colors may be obtained withplot(X,Y,S) where S is a character string made from one elementfrom any or all the following 3 columns:b blue . point - solidg green o circle : dottedr red x x-mark -. dashdotc cyan + plus -- dashedm magenta * star (none) no liney yellow s squarek black d diamondw white v triangle (down)^ triangle (up)< triangle (left)> triangle (right)p pentagramh hexagramFor example, plot(X,Y,'c+:') plots a cyan dotted line with a plusat each data point; plot(X,Y,'bd') plots blue diamond at each datapoint but does not draw any line.plot(X1,Y1,S1,X2,Y2,S2,X3,Y3,S3,...) combines the plots defined bythe (X,Y,S) triples, where the X's and Y's are vectors or matricesand the S's are strings.For example, plot(X,Y,'y-',X,Y,'go') plots the data twice, with asolid yellow line interpolating green circles at the data points.The plot command, if no color is specified, makes automatic use ofthe colors specified by the axes ColorOrder property. By default,plot cycles through the colors in the ColorOrder property. Formonochrome systems, plot cycles over the axes LineStyleOrder property.Note that RGB colors in the ColorOrder property may differ fromsimilarly-named colors in the (X,Y,S) triples. For example, thesecond axes ColorOrder property is medium green with RGB [0 .5 0],while plot(X,Y,'g') plots a green line with RGB [0 1 0].If you do not specify a marker type, plot uses no marker.If you do not specify a line style, plot uses a solid line.plot(AX,...) plots into the axes with handle AX.plot returns a column vector of handles to lineseries objects, onehandle per plotted line.The X,Y pairs, or X,Y,S triples, can be followed byparameter/value pairs to specify additional propertiesof the lines. For example, plot(X,Y,'LineWidth',2,'Color',[.6 0 0])will create a plot with a dark red line width of 2 points.Examplex = -pi:pi/10:pi;y = tan(sin(x)) - sin(tan(x));plot(x,y,'--rs','LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor','g',...'MarkerSize',10)与plot相关的函数还有plottools, semilogx, semilogy, loglog, plotyy, plot3, grid,title, xlabel, ylabel, axis, axes, hold, legend, subplot, scatter.2 plot2.1 显⽰正弦波显⽰⼀个简单的正弦函数;x=0:2*pi/100:2*pi;y=sin(x);plot(x,y);2.2 修改颜⾊参数颜⾊bgrcmykw下⾯修改为红⾊:x=0:2*pi/100:2*pi;y=sin(x);plot(x,y,'r');结果如下:2.3 修改点的形状参数形状图标-solido circlex x-mark+plus*stars squared diamondv triangle (down)^triangle (up)<triangle (left)>triangle (right)ppentagram h hexagram参数形状图标将点形状显⽰为六边形;x=0:2*pi/20:2*pi;y=sin(x);plot(x,y,'h','MarkerSize',10);结果如下:相关参数:MarkerEdgeColor :点边框颜⾊;MarkerFaceColor :点表⾯颜⾊;MarkerSize :点的⼤⼩;2.4 修改线的形状符号形状:dotted -.dashdot --dashedx=0:2*pi/20:2*pi;y=sin(x);plot(x,y,':','LineWidth',3);LineWidth 的参数为线宽;x=0:2*pi/20:2*pi;y=sin(x);plot(x,y,'-.','LineWidth',3);x=0:2*pi/20:2*pi;y=sin(x);plot(x,y,'--','LineWidth',3);2.5 多个参数修改下⾯修改多个参数属性显⽰⼀下正弦波;x = 0:2*pi/100:2*pi;y = sin(x);plot(x,y,'--rs','LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor','g',... 'MarkerSize',10);结果如下:3 subplotsubplot 的使⽤⽅法如下:subplot Create axes in tiled positions.H = subplot(m,n,p), or subplot(mnp), breaks the Figure windowinto an m-by-n matrix of small axes, selects the p-th axes forthe current plot, and returns the axes handle. The axes arecounted along the top row of the Figure window, then the second row, etc. For example,subplot(2,1,1), PLOT(income)subplot(2,1,2), PLOT(outgo)通俗的讲:subplot(⾏,列,index)注意:plot函数要在subplot表明位置之后再调⽤。
%%%先画好,然后更改坐标系%在命令行中使用 Ctrl+C 结束t=0:0.1:100*pi;m=sin(t);plot(t,m);x=-2*pi;axis([x,x+4*pi,-2,2]);grid onwhile 1if x>max(t)break;endx=x+0.1;axis([x,x+4*pi,-2,2]); %移动坐标系pause(0.1);end%%% Hold On 法% 此种方法只能点,或者分段划线hold offt=0;m=0;t1=[0 0.1]; %要构成序列m1=[sin(t1);cos(t1)];p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5);x=-1.5*pi;axis([x x+2*pi -1.5 1.5]);grid on;for i=1:100hold ont=0.1*i; %下一个点m=t-floor(t);t1=t1+0.1; %下一段线(组)m1=[sin(t1);cos(t1)];p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5); x=x+0.1;axis([x x+2*pi -1.5 1.5]);pause(0.01);end%%%采用背景擦除的方法,动态的划点,并且动态改变坐标系% t,m 均为一行,并且不能为多行t=0;m=0;p = plot(t,m,'*',...'EraseMode','background','MarkerSize',5);x=-1.5*pi;axis([x x+2*pi -1.5 1.5]);grid on;for i=1:1000t=0.1*i; %两个变量均不追加m=sin(0.1*i);set(p,'XData',t,'YData',m)x=x+0.1;drawnowaxis([x x+2*pi -1.5 1.5]);pause(0.1);end%%%采用背景擦除的方法,动态的划线,并且动态改变坐标系% 多行划线t=[0]m=[sin(t);cos(t)]p = plot(t,m,...'EraseMode','background','MarkerSize',5);x=-1.5*pi;axis([x x+2*pi -1.5 1.5]);grid on;for i=1:1000t=[t 0.1*i]; %Matrix 1*(i+1) m=[m [sin(0.1*i);cos(0.1*i)]]; %Matrix 2*(i+1) set(p(1),'XData',t,'YData',m(1,:))set(p(2),'XData',t,'YData',m(2,:))drawnowx=x+0.1;axis([x x+2*pi -1.5 1.5]);pause(0.5);endMatlab中使用Plot函数动态画图方法总结本文来自: MATLAB爱好者论坛(MATLABFAN) 作者: admin日期: 2009-8-17 11:23 阅读: 550人打印收藏大中小Plot, Matlab, 函数, 动态, 画图Matlab除了强大的矩阵运算,仿真分析外,绘图功能也是相当的强大,静态画图没什么问题,由于Matlab本身的多线程编程缺陷,想要动态的画图,并且能够很好的在GUI中得到控制,还不是一件很容易的事情,下面总结几种方法。
30.怎样用fplot 画一元函数的图形?
在MATLAB中绘制一元函数的图形(即平面曲线图形)除了用plot命令绘画外,还可以用fplot直接画一元函数图形。
使用fplot这一指令绘图的最大特点是不用确定自变量的离散数据并计算对应的函数值。
计算机在执行这一条指令时,将根据所给自变量取值区间来自动选取自变量结点(离散数据),并计
算出对应的函数值数据,然后绘图。
这对于一般用户来讲,更有利于提高工作效率。
fplot的命令格式为:
fplot(’函数名’, [Xmin,Xmax,Ymin,Ymax])
或fplot(’函数名’, [Xmim,Xmax])
使用这一指令时,需要先定义函数,同时还要在指令中使用方括号,在方括号内给定四个数据作为自变量取值区间和函数值显示范围。
也可只定义自变量的取值范围。
例如绘制正切函数的部分图形,可直接用下面指令
fplot('tan',[-2*pi,2*pi,-2*pi,2*pi])
由于正切函数是 MATLAB 的内部函数,所以不需要编缉函数文件定义函数而可以直接调用;方括号中的四个数据分别表明所绘图形在 X 和 Y 两个方向上均是由− 2π到2π 之间。
定义四个变量得到的图像:
仅定义自变量使用命令:fplot('tan',[-2*pi,2*pi])。
得到的图形如下:
如果要直接绘制出任意的一个函数图形,则必须事先编辑函数文件,然后再使用直接绘图命令。
例如,绘制函数
f(x)=
1
(x−3)2+1
+
1
(x−9)2+4
−6
在区间[0,30]内的图形。
首先编辑函数文件(文件名为 f.m)function y = f(x)
y = 1/((x-3)^2+1)+1/((x-9)^2+4)-6;
将这一文件保存在当前目录下,在 MATLAB 环境中用命令fplot('f',[0,30]);
将绘出该函数的图形如图所示。