Matlab作图入门教程MATLAB7.0不仅具有强大的数值计算功能,在数据可视化方面也是独占鳌头,可以满足同学们各方面的需求。对大家来说,抽象的数据往往是晦涩难懂的;但MATLAB通过图形编辑窗口和绘图函数方便地绘制二维、三维甚至多维图形,把杂乱离散的数据以形象的图形显示出来,有助于大家了解数据的性质和内在联系。Matlab绘图Matlab绘图如何画出y=sin(x)在[0,2*pi]上的图像?手工作图找点:x=0,pi/3,pi/2,2*pi/3,pi,…计算函数值:y=sin(0),sin(pi/3),sin(pi/2),…描点:在坐标系中画出这些离散点用直线或曲线连接这些点,得到函数的大致图形Matlab绘图Matlab作图Matlab绘图给出离散点列:x=[0:pi/10:2*pi]计算函数值:y=sin(x)画图:matlab二维绘图命令plot作出函数图形plot(x,y)例:x=[0:pi/10:2*pi];y=sin(x);plot(x,y);在MATLAB中用图形函数绘图的一般操作步骤分为7步,如表所示,下面以绘制一个简单三角函数的图形为例,详细介绍各个步骤。【例】用图形表示]2,2[,sincosxxxy(1)准备图形数据图形是数据变换规律和相互联系的形象显示,所以数据输入是图形创建的基础,我们需要选定数据的范围,选择对应范围的自变量,计算相应的函数值。本例中,我们需在命令窗口输入如下代码:x=-pi/2:.1:pi/2;y=cos(x)-sin(x);Matlab绘图步骤(2)选择图形的显示位置系统默认图形窗口为Figure1,如果大家需要在图形窗口中并列显示多个窗口,这需要使用subplot指令来选择子图号。如果大家需要把图形窗口定义为Figure6,并且分为3*2=6个子窗口,使得本例函数图形显示在图形窗口的左下角,那么大家需要在命令窗口中输入以下代码:figure(6);Subplot(3,2,5)Matlab绘图步骤(3)调用绘图指令并设置参数此步是主要绘图步骤,调用plot函数绘制图形plot(x,y)(4)选择线性和标记属性此步可以单独使用图形句柄设置,也可以与步骤(3)同时进行,选择图形的线性、颜色及数据点型等参数,形成图形概貌,如果大家希望用黑色点线“-.”来绘制本例函数,并使用“*”标注点型,则可输入plot(x,y,‘k-.*’)Matlab绘图步骤(5)设置坐标范围及网格线完成基本绘制后,在图形概貌的基础上对图形进行编辑,增强图形的可读性;一般说来,大家需要设置坐标轴的刻度范围和分隔线。本例系统默认的坐标轴范围是x,y∈[-2,2],且没有网格线,将本例的x坐标轴和y坐标轴的范围分别设置为[-π,π],和[-4,4],且给坐标加上分隔线,可以输入以下代码:axis([-pi,pi,-4,4])gridonMatlab绘图步骤(6)给图形加注释为了进一步使图形具有说服力和可读性,我们还经常给图形添加注释,例如图形的名称、坐标轴的名称、图例及文字说明,针对本例图形,给图形取名为“firstfigure”,x和y坐标轴分别取名“横”、“纵”,图例设置为“y=cos(x)-sin(x)”,并在(pi/2,-1)点加上文字说明“finalpoint”,输入以下代码:title(‘firstfigure’);xlabel(‘横’);ylabel(‘纵’);legend(‘y=cos(x)-sin(x)’);text(pi/2,-1,‘finalpoint’);Matlab绘图步骤(7)图形输出大家完成图形的绘制和编辑以后,需要将图形打印或是存放在其他文档中,最简单的方法是使用【file】菜单中的【saveas】选项,并且大家可以自行选择需要保存的格式类型。Matlab绘图步骤Matlab二维作图plot(x,y)基本形式x,y都是向量,则以x中元素为横坐标,y中元素为纵坐标作平面曲线。此时x,y必须具有相同长度。plot举例x=[0:0.1:4*pi];y=cos(x);plot(x,y);例:y=cos(x)在[0,4π]上的图像自己动手在0≤x≤2区间内,绘制曲线y=2e-0.5xcos(4πx)程序如下:x=0:pi/100:2*pi;y=2*exp(-0.5*x).*cos(4*pi*x);plot(x,y)【例】在0≤x≤2区间内,绘制曲线y=2e-0.5xcos(4πx)此点必加Matlab二维作图plot(x,y)基本形式x,y都是向量,则以x中元素为横坐标,y中元素为纵坐标作平面曲线。此时x,y必须具有相同长度。当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。此时x,y必须具有相同的大小。x是向量,y是矩阵,①若x的长度与y的行数相等,则将x与y中的各列相对应,绘制多条平面曲线;②若x的长度与y的列数相等,则将x与y中的各行相对应,绘制多条平面曲线。此时x的长度必须等于y的行数或列数。指出以下各个绘图命令的输出图形分别是什么,并上机验证t=[01];x=[12];y=[x;34];z=[y;56];plot(t,x);plot(t,y);plot(t,y');plot(t,z);plot(t,z');Matlab二维作图plot(y):绘制向量y中元素的线性图基本形式(续)(1)Y为实向量,则以Y的索引坐标作为横坐标,Y作为纵坐标来绘制图形。例:y=rand(100,1);plot(y)(2)如果Y为复数向量,则以向量的实部作为横坐标,虚部作为纵坐标,来绘制图形。例:x=rand(100,1);z=x+y.*i;plot(z)例:y=[0,0.48,0.84,1,0.91,6.14];plot(y);figure(2);plot([1:length(y)],y)自己动手x=[1:length(y)];plot(x,y);以下标为横坐标,元素值为纵坐标,等价于:plot(Y):当Y是矩阵时的图形是什么?Y=[12;35;69];plot(Y);plot(Y’);此例不错……具有两个纵坐标标度的图形在MATLAB中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy绘图函数。调用格式为:plotyy(x1,y1,x2,y2)其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐标用于x2,y2数据对。【例】用不同标度在同一坐标内绘制曲线:y1=0.2e-0.5xcos(4πx)y2=2e-0.5xcos(πx)。程序如下:x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);plotyy(x,y1,x,y2);点和线的基本属性图形的属性plot(x,y,string)其中string是用单引号括起来的字符串,用来指定图形的属性(点、线的形状和颜色)属性可以全部指定,也可以只指定其中某几个排列顺序任意红色、虚线、离散点用加号蓝色、点划线离散点为菱形黑色、实线离散点用星号x=[0:0.2:2*pi];plot(x,cos(x));plot(x,cos(x),’r+:’);plot(x,cos(x),’bd-.’);plot(x,cos(x),’k*-’);plot(X,Y,s)s参数:-实线.点*星号^上三角:点线o圆s方形左三角-.点划线xx符号d菱形右三角--虚线++号v下三角p正五边形y黄色m紫红色c蓝绿色r红色g绿色b蓝色w白色k黑色上述参数的不同组合可以为图形设置不同的线形、颜色和标识,调用时以单引号来引用,各选项直接相连,不需要分隔符。【例】x=0:0.1*pi:pi;y=sin(x);z=cos(x);plot(x,y,'--k',x,z,'-.rd')00.511.522.533.5-1-0.8-0.6-0.4-0.200.20.40.60.81图形标注与坐标控制有关图形标注函数的调用格式为:title(图形名称)xlabel(x轴说明)ylabel(y轴说明)text(x,y,图形说明)legend(图例1,图例2,…)图形的其他属性图形的其他属性标题title(’text’)例title('text','Property1',value1,'Property2',value2,...)Property:linewidth,markersize,fontsize,fontweight,fontname,…可以指定文本的属性图形的其他属性坐标轴标注xlabel(’text’)或ylabel(’text’)例:图形的其他属性添加图例legend(string1,string2,...)在指定地方添加文本text(x,y,string1,string2,...)legend('cos(x)');text(pi/2,cos(pi/2),'\leftarrowy=cos(x)');xlable,ylabel,text命令也可以指定文本的属性其他相关命令保持当前窗口的图像holdon或holdoff新建绘图窗口figure(n)显示网格gridon或gridofffigure(n)——创建窗口函数,n为窗口顺序号。t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y)%自动出现第一个窗口figure(2)plot(t,y1)%在第二窗口绘图figure(3)plot(t,y2)%在第三窗口绘图01234567-1-0.8-0.6-0.4-0.200.20.40.60.8101234567-1-0.8-0.6-0.4-0.200.20.40.60.8101234567-1-0.8-0.6-0.4-0.200.20.40.60.81MATLAB的绘图功能十分灵活,不但可以在一个图形窗口中绘制多个完全独立的子图,称为绘制子图;也允许用户在一个图形中绘制多条曲线,称为图形叠绘。接下来首先介绍子图的绘制方法。绘制子图当大家需要进行相关图形的比较或者是同类图形的分析时,比较方便的方式是把若干图形在同一个图形窗口显示出来。针对用户的这一点需要,MATLAB提供了子图的绘制功能,并约定了符合常规思维习惯的分栏方式。绘制子图划分绘图区域subplot(m,n,p)将一个绘图窗口分割成m*n个子区域,并按行从左至右依次编号。p表示第p个绘图子区域。subplot——子图分割命令调用格式:subplot(m,n,p)——按从左至右,从上至下排列行列绘图序号绘制子图划分绘图区域subplot(m,n,p)怎样在一个绘图区域内绘制多个函数的图像?将一个绘图窗口分割成m*n个子区域,并按行从左至右依次编号。p表示第p个绘图子区域。x=-pi:pi/10:pi;subplot(2,2,1);plot(x,sin(x));subplot(2,2,2);plot(x,cos(x));subplot(2,2,3);plot(x,x.^2);subplot(2,2,4);plot(x,exp(x));例:刚才已经解决了“一个窗口绘制多图”的问题,接下来将介绍如何“一个坐标轴绘制多曲线”。在实际工作中,大家常常需要即已经绘制完成的图形上再次添加或删减图形,这时可以调用hold函数,hold函数的调用格式和功能如下:hold:在图形保功能保持和关闭状态之间切换。holdon:启动图形保持功能,在原图的基础上,再次绘制的图形将全部添加到图形窗口中,并自动调整坐标轴范围;holdoff:关闭图形保持功