第三章数组和矩阵第一章概论第四章程序设计第二章数据类型第五章图形绘制22008-8-22第五章MATLAB绘图5.1二维数据曲线图5.2其他二维图形5.3隐函数绘图5.4三维图形5.5图形修饰处理5.6图像处理与动画制作32008-8-225.1二维数据曲线图5.1.1绘制单根二维曲线plot函数的基本调用格式为:plot(x,y)其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。例5-1在0≤x≤2p区间内,绘制曲线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)例5-2绘制曲线。程序如下:t=0:0.1:2*pi;x=t.*sin(3*t);y=t.*sin(t).*sin(t);plot(x,y);第五章MATLAB绘图42008-8-22plot函数最简单的调用格式是只包含一个输入参数:plot(x)在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。x=[23125]plot(x)相当于x=1:5y=[23125]plot(x,y)第五章MATLAB绘图52008-8-225.1.2绘制多根二维曲线1.plot函数的输入参数是矩阵形式(1)当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。x=[318];y=magic(3);z=[x;y]plot(x,z)(2)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。x=magic(3)y=[123;456;789]plot(x,y)816357492第五章MATLAB绘图62008-8-22(3)对只包含一个输入参数的plot函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数。当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。2.含多个输入参数的plot函数调用格式为:plot(x1,y1,x2,y2,…,xn,yn)(1)当输入参数都为向量时,x1和y1,x2和y2,…,xn和yn分别组成一组向量对,每一组向量对的长度可以不同。每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。(2)当输入参数有矩阵形式时,配对的x,y按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。第五章MATLAB绘图72008-8-22例5-3分析下列程序绘制的曲线。x1=linspace(0,2*pi,100);x2=linspace(0,3*pi,100);x3=linspace(0,4*pi,100);y1=sin(x1);y2=1+sin(x2);y3=2+sin(x3);x=[x1;x2;x3]';y=[y1;y2;y3]';plot(x,y,x1,y1-1)第五章MATLAB绘图82008-8-223.具有两个纵坐标标度的图形在MATLAB中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy绘图函数。调用格式为:plotyy(x1,y1,x2,y2)其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1,y1数据对,右纵坐标用于x2,y2数据对。例5-4用不同标度在同一坐标内绘制曲线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);第五章MATLAB绘图92008-8-22例5-5采用图形保持,在同一坐标内绘制曲线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);plot(x,y1)holdonpausey2=2*exp(-0.5*x).*cos(pi*x);plot(x,y2);holdoff4.图形保持holdon/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换。第五章MATLAB绘图102008-8-225.1.3设置曲线样式Matlab提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号,它们可以组合使用。例如,“b-.”表示蓝色点划线,“y:d”表示黄色虚线并用菱形符标记数据点。当选项省略时,Matlab规定,线型一律用实线,颜色将根据曲线的先后顺序依次。要设置曲线样式可以在plot函数中加绘图选项,其调用格式为:plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)第五章MATLAB绘图112008-8-22小整理:plot绘图函数的参数字元颜色字元时标字元线态y黄色.点-实线(默认)k黑色o圆:点线w白色x十字-.点虚线b蓝色++--虚线g绿色**r红色s矩形c亮青色d菱形m洋红色∧∨上(下左右)三角p五边形h六边形第五章MATLAB绘图122008-8-22小整理:其他各种二维绘图函数bar长条图errorbar图形加上误差范围fplot较精确的函数图形polar极座标图hist累计图rose极座标累计图stairs阶梯图stem针状图fill实心图feather羽毛图compass罗盘图quiver向量场图第五章MATLAB绘图132008-8-22例5-6在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx),标记两曲线交叉点。程序如下:x=linspace(0,2*pi,1000);y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);k=find(abs(y1-y2)1e-2);%查找y1与y2相等点(近似相等)的下标x1=x(k);%取y1与y2相等点的x坐标y3=0.2*exp(-0.5*x1).*cos(4*pi*x1);%求y1与y2值相等点的y坐标plot(x,y1,x,y2,'k:',x1,y3,'bp');第五章MATLAB绘图142008-8-225.1.4图形标注与坐标控制1.图形标注有关图形标注函数的调用格式为:title(图形名称)xlabel(x轴说明)ylabel(y轴说明)text(x,y,图形说明)legend(图例1,图例2,…)第五章MATLAB绘图152008-8-22例5-7在0≤x≤2p区间内,绘制曲线y1=2e-0.5x和y2=cos(4πx),并给图形添加图形标注。程序如下:x=0:pi/100:2*pi;y1=2*exp(-0.5*x);y2=cos(4*pi*x);plot(x,y1,x,y2)title('xfrom0to2{\pi}');%加图形标题xlabel('VariableX');%加X轴说明ylabel('VariableY');%加Y轴说明text(0.8,1.5,'曲线y1=2e^{-0.5x}');%在指定位置添加图形说明text(2.5,1.1,'曲线y2=cos(4{\pi}x)');legend('y1','y2')%加图例第五章MATLAB绘图162008-8-222.坐标控制axis函数的调用格式为:axis([xminxmaxyminymaxzminzmax])axis函数功能丰富,常用的格式还有:axisequal:纵、横坐标轴采用等长刻度。axissquare:产生正方形坐标系(缺省为矩形)。axisauto:使用缺省设置。axisoff:取消坐标轴。axison:显示坐标轴。给坐标加网格线用grid命令来控制。gridon/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。给坐标加边框用box命令来控制。boxon/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。第五章MATLAB绘图172008-8-22例5-8在同一坐标中,可以绘制3个同心圆,并加坐标控制。程序如下:t=0:0.01:2*pi;x=exp(i*t);y=[x;2*x;3*x]';plot(y)gridon;%加网格线boxoff;%加坐标边框axisequal%坐标轴采用等刻度第五章MATLAB绘图182008-8-225.1.5图形的可视化编辑MATLAB6.5版本在图形窗口中提供了可视化的图形编辑工具,利用图形窗口菜单栏或工具栏中的有关命令可以完成对窗口中各种图形对象的编辑处理。在图形窗口上有一个菜单栏和工具栏。菜单栏包含File、Edit、View、Insert、Tools、Window和Help共7个菜单项,工具栏包含11个命令按钮。第五章MATLAB绘图192008-8-225.1.6对函数自适应采样的绘图函数fplot函数的调用格式为:fplot(fname,lims,tol,选项)其中fname为函数名,以字符串形式出现,lims为x,y的取值范围,tol为相对允许误差,其系统默认值为2e-3。选项定义与plot函数相同。例5-9用fplot函数绘制f(x)=cos(tan(πx))的曲线。命令如下:fplot('cos(tan(pi*x))',[0,1],1e-4)第五章MATLAB绘图202008-8-225.1.7图形窗口的分割subplot函数的调用格式为:subplot(m,n,p)该函数将当前图形窗口分成m×n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。在每一个绘图区允许以不同的坐标系单独绘制图形。例5-10在图形窗口中,以子图形式同时绘制多根曲线。第五章MATLAB绘图212008-8-22x_square=[-3,3,3,-3,-3];y_square=[-3,-3,3,3,-3];x_circle=3*cos([0:10:360]*pi/180);y_circle=3*sin([0:10:360]*pi/180);subplot(1,2,1)plot(x_square,y_square,'-r');axis([-4,4,-4,4]);axis('equal');title('Square');subplot(1,2,2)plot(x_circle,y_circle,'--k');axis([-4,4,-4,4]);axis('equal');title('Circle');第五章MATLAB绘图222008-8-225.2二维统计分析图在MATLAB中,二维统计分析图形很多,常见的有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:bar(x,y,选项)条形图stairs(x,y,选项)阶梯图stem(x,y,选项)杆图fill(x1,y1,选项1,x2,y2,选项2,…)填充图第五章MATLAB绘图232008-8-22小整理:其他各种二维绘图函数bar长条图errorbar图形加上误差范围fplot较精确的函数图形polar极座标图hist累计图rose极座标累计图stairs阶梯图stem针状图fill实心图feather羽毛图compass罗盘图quiver向量场图第五章MATLAB绘图242008-8-22例5-13分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。程序如下:x=0:pi/10:2*pi;y=2*sin(x);subplot(2,2,1);bar(x,y,'g');title('bar(x,y,''g'')');axis([0,7,-2,2]);subplot(2,2,2);stairs(x,y,'b');tit