《MATLAB语言及其应用课件CH04MATLAB语言.ppt》由会员分享,可在线阅读,更多相关《MATLAB语言及其应用课件CH04MATLAB语言.ppt(112页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第4章 matlab 绘图matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。matlab语言的绘图功能 不仅能绘制几乎所有的标准图形,而且其表现形式也是丰富多样的。matlab语言不仅具有高层绘图能力,而且还具有底层绘图能力句柄绘图方法。在面向对象的图形设计基础上,使得用户可以用来开发各专业的专用图形。4.1 二维图形的绘制4.1.1绘制二维曲线的最基本函数plot 最基本的二维图形指令plot的功能:plot命令自动打开一个图形窗口Figure 用直线连接相邻两数据点来绘制图形根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自
2、动加到两个坐标轴上,可自定坐标轴,可把x,y 轴用对数坐标表示如果已经存在一个图形窗口,plot命令则清除当前图形,绘制新图形可单窗口单曲线绘图;可单窗口多曲线绘图;可单窗口多曲线分图绘图;可多窗口绘图可任意设定曲线颜色和线型可给图形加坐标网线和图形加注功能plot的调用格式 plot(x)缺省自变量绘图格式,x为向量,以x元素值为纵坐标,以相应元素下标为横坐标绘图 plot(x,y)基本格式,其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。以y(x)的函数关系作出直角坐标图,如果y为nm的矩阵,则以x 为自变量,作出m条曲线 例:在0X2区间内,绘制曲线y=2e-0.5xsin(
3、2x)。程序如下:x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)说明:(1)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。(2)当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同色彩的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。(3)plot函数最简单的调用格式是只包含一个输入参数:plot(x)。例:某工厂2000年各月总产值(单位:万元)分别为22、60、88、95、56、23、9、10、14、81、56、23,试绘制折线图以显示出该厂总产值的变化情况。程
4、序如下:p=22,60,88,95,56,23,9,10,14,81,56,23;plot(p)plot(x1,y1,x2,y2)多条曲线绘图格式plot(x,y,s)开关格式,开关量字符串s设定曲线颜色和绘图方式,使用颜色字符串的前13个字母,如 yellowyel表示等。或plot(x1,y1,s1,x2,y2,s2,)例:用不同线型和颜色在同一坐标内绘制曲线y=2e-0.5xsin(2x)及其包络线。程序如下:x=(0:pi/100:2*pi);y1=2*exp(-0.5*x)*1,-1;y2=2*exp(-0.5*x).*sin(2*pi*x);x1=(0:12)/2;y3=2*exp
5、(-0.5*x1).*sin(2*pi*x1);plot(x,y1,g:,x,y2,b-,x1,y3,rp);双纵坐标函数plotyy plotyy函数是MATLAB 5.X新增的函数。它能把函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中。调用格式为:plotyy(x1,y1,x2,y2)其中x1y1对应一条曲线,x2y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1y1数据对,右纵坐标用于x2y2数据对。例:用不同标度在同一坐标内绘制曲线y1=e-0.5xsin(2x)及曲线y2=1.5e-0.1xsin(x)。程序如下:x1=0:pi/100:2*pi;x2=0
6、:pi/100:3*pi;y1=exp(-0.5*x1).*sin(2*pi*x1);y2=1.5*exp(-0.1*x2).*sin(x2);plotyy(x1,y1,x2,y2);S的标准设定值如下:字母 颜色 标点 线型 y 黄色 点线 m 粉红 圈线 c 亮蓝 线 r 大红 字线 g 绿色 实线 b 蓝色 星形线 w 白色 :虚线 k 黑色 (-)点划线matlab6.1线形:+|o|*|.|x|square|diamond|v|pentagram|hexagram square 正方形 diamond 菱形 pentagram 五角星 hexagram 六角星 4.1.2 绘制图形的
7、辅助操作 1.图形标注 有关图形标注函数的调用格式为:title(图形名称)xlabel(x轴说明)ylabel(y轴说明)text(x,y,图形说明)legend(图例1,图例2,)例:给图形添加图形标注。程序如下:x=(0:pi/100:2*pi);y1=2*exp(-0.5*x)*1,-1;y2=2*exp(-0.5*x).*sin(2*pi*x);x1=(0:12)/2;y3=2*exp(-0.5*x1).*sin(2*pi*x1);plot(x,y1,g:,x,y2,b-,x1,y3,rp);title(曲线及其包络线);%加图形标题 xlabel(independent varia
8、ble X);%加X轴说明 ylabel(independent variable Y);%加Y轴说明 text(2.8,0.5,包络线);%在指定位置添加图形说明 text(0.5,0.5,曲线y);text(1.4,0.1,离散数据点);legend(包络线,包络线,曲线y,离散数据点)%加图例 2.坐标控制函数的调用格式为:axis(xmin xmax ymin ymax zmin zmax)axis函数功能丰富,常用的用法还有:axis equal 纵、横坐标轴采用等长刻度axis square 产生正方形坐标系(缺省为矩形)axis auto 使用缺省设置axis off 取消坐标轴
9、axis on 显示坐标轴grid on/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。box on/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。例:用图形保持功能在同一坐标内绘制曲线y=2e-0.5xsin(2x)及其包络线,并加网格线。(ex2801.m)程序如下:x=(0:pi/100:2*pi);y1=2*exp(-0.5*x)*1,-1;y2=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y1,b:);axis(0,2*pi,-2,2);%设置坐标 hold on;%设置图形保持状态 plot(
10、x,y2,k);grid on;%加网格线 box off;%不加坐标边框 hold off;%关闭图形保持 3.图形窗口的分割 subplot函数的调用格式为:subplot(m,n,p)例:在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。(ex2802.m)程序如下:x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps);ct=cos(x)./(sin(x)+eps);subplot(2,2,1);plot(x,y);title(sin(x);axis(0,2*pi,-1,1);subplot(2,2,2)
11、;plot(x,z);title(cos(x);axis(0,2*pi,-1,1);subplot(2,2,3);plot(x,t);title(tangent(x);axis(0,2*pi,-40,40);subplot(2,2,4);plot(x,ct);title(cotangent(x);axis(0,2*pi,-40,40);对图形窗口灵活分割。请看下面的程序(ex2803.m)。x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps);ct=cos(x)./(sin(x)+eps);subplot(2,2,1);%
12、选择22个区中的1号区 stairs(x,y);title(sin(x)-1);axis(0,2*pi,-1,1);subplot(2,1,2);%选择21个区中的2号区 stem(x,y);title(sin(x)-2);axis(0,2*pi,-1,1);subplot(4,4,3);%选择44个区中的3号区 plot(x,y);title(sin(x);axis(0,2*pi,-1,1);subplot(4,4,4);%选择44个区中的4号区 plot(x,z);title(cos(x);axis(0,2*pi,-1,1);subplot(4,4,7);%选择44个区中的7号区 plot
13、(x,t);title(tangent(x);axis(0,2*pi,-40,40);subplot(4,4,8);%选择44个区中的8号区 plot(x,ct);title(cotangent(x);axis(0,2*pi,-40,40);4.1.3 绘制二维图形的其他函数1.其他形式的线性直角坐标图在线性直角坐标系中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:bar(x,y,选项)stairs(x,y,选项)stem(x,y,选项)fill(x1,y1,选项1,x2,y2,选项2,)例:绘制直方图 t=0:0.2:2*pi;y=cos(t);bar(y)例:绘制阶
14、梯曲线x=0:pi/20:2*pi;y=sin(x);stairs(x,y)例:阶梯绘图h2=1 1;1-1;h4=h2 h2;h2-h2;h8=h4 h4;h4-h4;t=1:8;subplot(8,1,1);stairs(t,h8(1,:);axis(off)subplot(8,1,2);stairs(t,h8(2,:);axis(off)subplot(8,1,3);stairs(t,h8(3,:);axis(off)subplot(8,1,4);stairs(t,h8(4,:);axis(off)subplot(8,1,5);stairs(t,h8(5,:);axis(off)subp
15、lot(8,1,6);stairs(t,h8(6,:);axis(off)subplot(8,1,7);stairs(t,h8(7,:);axis(off)subplot(8,1,8);stairs(t,h8(8,:);axis(off)h2=1 1;1-1;h4=h2 h2;h2-h2;h8=h4 h4;h4-h4;t=1:8;for i=1:8subplot(8,1,i);stairs(t,h8(i,:)axis(off)end 例:绘制火柴杆绘图 t=0:0.2:2*pi;y=cos(t);stem(y)fill 基本二维绘图函数 fill的功能:绘制二维多边形并填充颜色例:x=1 2
16、3 4 5;y=4 1 5 1 4;fill(x,y,r)例:分别以条形图、填充图、阶梯图和杆图形式绘制曲线y=2e-0.5x。(ex2804.m)程序如下:x=0:0.35:7;y=2*exp(-0.5*x);subplot(2,2,1);bar(x,y,g);title(bar(x,y,g);axis(0,7,0,2);subplot(2,2,2);fill(x,y,r);title(fill(x,y,r);axis(0,7,0,2);subplot(2,2,3);stairs(x,y,b);title(stairs(x,y,b);axis(0,7,0,2);subplot(2,2,4);
17、stem(x,y,k);title(stem(x,y,k);axis(0,7,0,2);2极坐标图polar函数用来绘制极坐标图,其调用格式为:polar(theta,rho,选项)其中theta为极坐标极角,rho为极坐标矢径,选项的内容与plot函数相似。例:绘制=sin(2)cos(2)的极坐标图。(ex2805.m)程序如下:theta=0:0.01:2*pi;rho=sin(2*theta).*cos(2*theta);polar(theta,rho,k);例:绘制极坐标绘图t=0:2*pi/90:2*pi;y=cos(4*t);polar(t,y)3对数坐标图形 MATLAB提供了
18、绘制对数和半对数坐标曲线的函数,调用格式为:semilogx(x1,y1,选项1,x2,y2,选项2,)semilogy(x1,y1,选项1,x2,y2,选项2,)loglog(x1,y1,选项1,x2,y2,选项2,)例:绘制y=10 x2的对数坐标图并与直角线性坐标图进行比较。(ex2806.m)程序如下:x=0:0.1:10;y=10*x.*x;subplot(2,2,1);plot(x,y);title(plot(x,y);grid on;subplot(2,2,2);semilogx(x,y);title(semilogx(x,y);grid on;subplot(2,2,3);se
19、milogy(x,y);title(semilogy(x,y);grid on;subplot(2,2,4);loglog(x,y);title(loglog(x,y);grid on;4.对函数自适应采样的绘图函数fplot函数的调用格式为:fplot(fname,lims,tol,选项)fplot(fname,lims)绘制函数fname在x区间 lims=xmin xmax的函数图。fplot(fname,lims,corline)以指定线形绘图x,y=fplot(fname,lims)只返回绘图点的值,而不绘图,用plot(x,y)来绘图。fplot(sin(x),tan(x),cos
20、(x),2*pi*-1 1-1 1)fplot(humps,0 1,rp)例:用fplot函数绘制f(x)=cos(tan(x)的曲线。先建立函数文件myf.m:function y=myf(x)y=cos(tan(pi*x);再用fplot函数绘制myf.m函数的曲线(ex2807.m):fplot(myf,-0.4,1.4,1e-4)ezplot的调用格式:ezplot(f)这里f为包含单个符号变量x的符号表达式,在x轴的默认范围 -2*pi 2*pi内绘制f(x)的函数图ezplot(f,xmin,xmax)给定区间ezplot(f,xmin,xmax,figure(n)指定绘图窗口绘图
21、。ezplot(sin(x)ezplot(sin(x),cos(y),-4*pi 4*pi,figure(2)5.其他形式的图形MATLAB提供的绘图函数还有很多,例如,用来表示各元素占总和的百分比的饼图、复数的相量图等等。hist 绘制统计直方图rose 绘制统计扇形图 comet 绘制彗星曲线errorbar 绘制误差棒图 compass 复数向量图(罗盘图)feather 复数向量投影图(羽毛图)quiver 向量场图 area 区域图 pie 饼图 convhull 凸壳图 scatter 离散点图 例:绘制彗星曲线图 t=-pi:pi/500:pi;y=tan(sin(t)-sin(
22、tan(t);comet(t,y)x=1 2 3 4 5 6 7;y=0 0 0 1 0 0 0;pie(x,y)pie(x,y,North,South,East,West,middle,fa,white)load seamountscatter(x,y,50,z)a=rand(200,1);b=rand(200,1);c=rand(200,1);scatter(a,b,100,c,p)例 绘制图形:(1)某次考试优秀、良好、中等、及格、不及格的人数分别为:7,17,23,19,5,试用饼图作成绩统计分析。(2)绘制复数的相量图:3+2i、4.5-i和-1.5+5i。(ex2808.m)程序如
23、下:subplot(1,2,1);pie(7,17,23,19,5);title(饼图);legend(优秀,良好,中等,及格,不及格);subplot(1,2,2);compass(3+2i,4.5-i,-1.5+5i);title(相量图);1.单窗口单曲线绘图例1:x=0,0.48,0.84,1,0.91,0.6,0.14 x1,x2,x3,x4,x5,x6,x7,plot(x)2.单窗口多曲线绘图例2:t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y,t,y1,t,y2)yy1y2例 3:y=sin(t);y1
24、=sin(t+0.25);y2=sin(t+0.5);y3=cos(t);y4=cos(t+0.25);y5=cos(t+0.5);plot(t,y,y1,y2,y3,y4,y5)y3=cos(t);y4=cos(t+0.25);y5=cos(t+0.5);plot(t,y3);hold on;plot(t,y4);plot(t,y5);x=peaks;plot(x)x=1:length(peaks);y=peaks;plot(x,y)为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点 3.单窗口多曲线分图绘图subplo
25、t 子图分割命令调用格式:subplot(m,n,p)按从左至右,从上至下排列 行列绘图序号subplot(1,3,1);plot(t,y)subplot(1,3,2);plot(t,y3)subplot(1,3,3);plot(t,y2)subplot(3,1,1);plot(t,y)subplot(3,1,2);plot(t,y3)subplot(3,1,3);plot(t,y2)subplot(position,left bottom width height)4.多窗口绘图 figure(n)创建窗口函数,n为窗 口顺序号。t=0:pi/100:2*pi;y=sin(t);y1=sin
26、(t+0.25);y2=sin(t+0.5);plot(t,y)自动出现第一个窗口figure(2)plot(t,y1)在第二窗口绘图figure(3)plot(t,y2)在第三窗口绘图5.可任意设置颜色与线型例 4(例2):plot(t,y,r-,t,y1,g:,t,y2,b*)4.2 三维绘图三维绘图的主要功能:绘制三维线图 绘制等高线图 绘制伪彩色图 绘制三维网线图 绘制三维曲面图、柱面图和球面图 绘制三维多面体并填充颜色4.2.1 三维线图plot3 基本的三维图形指令plot3函数与plot函数用法十分相似,调用格式:plot3(x,y,z)x,y,z是长度相同的向量plot3(X,
27、Y,Z)X,Y,Z是维数相同的矩阵plot3(x,y,z,s)带开关量plot3(x1,y1,z1,s1,x2,y2,z2,s2,)二维图形的所有基本特性对三维图形全都适用。定义三维坐标轴大小 axis(xmin xmax ymin ymax zmin zmax)grid on(off)绘制三维网格 text(x,y,z,string)三维图形标注 子图和多窗口也可以用到三维图形中例:绘制三维线图t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),r:)例:绘制空间曲线。(ex2809.m)程序如下:t=0:pi/50:2*pi;x=8*cos(t);y=4*sqrt(
28、2)*sin(t);z=-4*sqrt(2)*sin(t);plot3(x,y,z,p);title(Line in 3-D Space);text(0,0,0,origin);xlabel(X),ylabel(Y),zlabel(Z);grid;三维饼图pie3(4 3 6 8 9)三维多边形fill3=fill 三维多边形的绘制和填色与二维多边形完全相同调用格式:fill3(x,y,z,s)与二维相同例:用随机顶点坐标画出5个粉色的三角形,并用黄色的表示顶点y1=rand(3,5);y2=rand(3,5);y3=rand(3,5);fill3(y1,y2,y3,m);hold on;pl
29、ot3(y1,y2,y3,yo)4.2.2 三维曲面图 三维网格图mesh 三维网线绘图函数调用格式:mesh(z)z为nm的矩阵,x与y 坐标为元素的下标 mesh(x,y,z)x,y,z分别为三维空 间的坐标位置例,矩阵的三维网线图z=rand(6);0.8808 0.0729 0.4168 0.7694 0.3775 0.4776 0.3381 0.7101 0.0964 0.6352 0.3826 0.7086 0.1895 0.8791 0.6747 0.8965 0.6876 0.2380 0.7431 0.3594 0.5626 0.8784 0.1217 0.3910 0.71
30、89 0.0899 0.8130 0.4865 0.0768 0.9759 0.8792 0.1610 0.8782 0.1131 0.1433 0.6288z=round(z)1 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1mesh(z);mesh(z)例:8阶hadamard矩阵的网线图h2=1 1;1-1;h4=h2 h2;h2-h2h8=h4 h4;h4-h4 1 1 1 1 1 1 1 1 1 -1 1 -1 1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 -1 -1 1 1
31、 -1 -1 1 1 1 1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 1 -1mesh(h8)三维网线图作图要领生成坐标 X,Y=meshgrid(x,y)表达式点运算 Z=X.2+Y.2X,Y是nm的矩阵,维数可任定X nY mZnm维 meshgrid 网线坐标值计算函数 z=f(x,y)根据x,y坐标找出z的高度例:绘制z=x2+y2的三维网线图形 x=-5:5;y=x;X,Y=meshgrid(x,y)Z=X.2+Y.2 mesh(X,Y,Z)坐标矩阵坐标向量纵坐标矩阵绘图函数colorm
32、ap(R,G,B)色图设定函数matlab 的颜色数据集合为红、绿、兰三颜色矩阵R,G,B,维数m3r,g,b在0 1区间连续取值,理论上颜色种类可达无穷多种matlab使用三维向量表示一种颜色,常用颜色数据见下表 饱和色 0 0 0 黑色 0 0 1 兰色 0 1 0 绿色 0 1 1 浅兰 1 0 0 红色 1 0 1 粉红 1 1 0 黄色 1 1 1 白色 调和色0.5 0.5 05 灰色0.5 0 0 暗红色1 0.62 0.4 铜色0.49 1 0.8 浅绿0.49 1 0.83 宝石兰 surf 三维曲面绘图函数,与网格图 看起来一样与三维网线图的区别:网线图:线条有颜色,空挡是
33、黑色的(无颜色)曲面图:线条是黑色的,空挡有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化调用格式:surf(x,y,z)绘制三维曲面图,x,y,z 为图形坐标向量例:X,Y,Z=peaks(30)peaks为matlab自动生成的三维测试图形surf(X,Y,Z)surf函数和mesh函数的调用格式为:mesh(x,y,z,c)surf(x,y,z,c)例 用三维曲面图表现函数z=sin(y)cos(x)。(ex2810.m)程序程序1:x=0:0.1:2*pi;x,y=meshgrid(x);z=sin(y).*cos(x);mesh(x,y,z);xlabel(x-axis),yl
34、abel(y-axis),zlabel(z-axis);title(mesh);程序程序2:x=0:0.1:2*pi;x,y=meshgrid(x);z=sin(y).*cos(x);surf(x,y,z);xlabel(x-axis),ylabel(y-axis),zlabel(z-axis);title(surf);程序程序3:x=0:0.1:2*pi;x,y=meshgrid(x);z=sin(y).*cos(x);plot3(x,y,z);xlabel(x-axis),ylabel(y-axis),zlabel(z-axis);title(plot3-1);grid;例:分析由函数z=
35、x2-2y2构成的曲面形状及与平面z=a的交线。(ex2811.m)程序如下:x,y=meshgrid(-10:0.2:10);z1=(x.2-2*y.2)+eps;%第1个曲面 a=input(a=?);z2=a*ones(size(x);%第2个曲面 subplot(1,2,1);mesh(x,y,z1);hold on;mesh(x,y,z2);%分别画出两个曲面 v=-10,10,-10,10,-100,100;axis(v);grid;%第1子图的坐标设置 hold off;r0=abs(z1-z2)=1;%求两曲面z坐标差小于1的点 xx=r0.*x;yy=r0.*y;zz=r0.
36、*z2;%求这些点上的x,y,z坐标,即交线坐标 subplot(1,2,2);plot3(xx(r0=0),yy(r0=0),zz(r0=0),*);%在第2子图画出交线 axis(v);grid;%第2子图的坐标设置 surfc(X,Y,Z)带等高线的曲面图 X,Y,Z=peaks(30);surfc(X,Y,Z)surfl(X,Y,Z)被光照射带阴影的曲面图X,Y,Z=peaks(30);surfl(X,Y,Z)cylinde(r,n)三维柱面绘图函数 r 为半径;n为柱面圆周等分数例:绘制三维陀螺锥面t1=0:0.1:0.9;t2=1:0.1:2;r=t1-t2+2;x,y,z=cyl
37、inder(r,30);surf(x,y,z);grid 为球面等分数,缺省为20 例:绘制三维球面x,y,z=sphere(30);surf(x,y,z);其他三维图形 条形图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是bar3、pie3和fill3。此外,还有三维曲面的等高线图。等高线图分二维和三维两种形式,分别使用函数contour和contour3绘制。例 绘制多峰函数的等高线图。(ex2902.m)程序如下:x,y,z=peaks;contour3(x,y,z,12,k);%其中12代表高度的等级数xlabel(x-axis),ylabel(y-axis),z
38、label(z-axis);title(contour3 of peaks);4.3 三维图像的精细处理图形颜色修饰方法matlab 有极好的颜色表现功能,其颜色数据又构成了一维新的数据集合,也可称为四维图形colormap(MAP)色图设定函数,MAP为m3维色图矩阵图形颜色可根据需要任意生成,也可用matlab配备的色图函数 三维表面图着色:实际上就是在网格图的每一个网格片上涂上颜色。surf函数用缺省的着色方式对网格片着色。除此之外,还可以用shading命令来改变着色方式。图形修饰方法图形颜色的修饰matlab 有极好的颜色表现功能,其颜色数据又构成了一维新的数据集合,也可称为四维图形
39、colormap(MAP)色图设定函数,MAP为m3维色图矩阵图形颜色可根据需要任意生成,也可用matlab配备的色图函数matlab 的色图函数:hsv 饱和值色图 gray 线性灰度色图 hot 暖色色图 cool 冷色色图 bone 兰色调灰色图 copper 铜色色图 pink 粉红色图 prism 光谱色图 jet 饱和值色图II flag 红、白、蓝交替色图shading faceted 网格修饰,缺省方式shading flat 去掉黑色线条,根据小方块的值确定颜色shading interp 颜色整体改变,根据小方块四角的值差补过度点的值确定颜色peaks(30);shadin
40、g interp;colormap(hot)X,Y,Z=peaks(30);surfl(X,Y,Z)shading interp;colormap(cool);axis offpeaks(30);colormap(hot);colorbar(horiz)figure(2);colormap(cool);例 3种图形着色方式的效果展示。(ex2903.m)程序如下:z=peaks(20);colormap(copper);subplot(1,3,1);surf(z);subplot(1,3,2);surf(z);shading flat;subplot(1,3,3);surf(z);shadin
41、g interp;图形效果修饰透视与消隐 用于网线图裁剪修饰 用于网线图、曲面图视角修饰 观察不同角度的三维视图其它修饰:a.水线修饰 b.等高线修饰透视与消隐p=peaks(30);mesh(p);hidden onp=peaks(30);mesh(p);hidden off裁减修饰MATLAB定义的NaN常数可以用于表示那些不可使用的数据,利用这种特性,可以将图形中需要裁剪部分对应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的。裁减修饰p=peaks;p(30:40,20:30)=nan*p(30:40,20:30);surf(p)p
42、=peaks;p(30:40,20:30)=nan*p(30:40,20:30);mesh(peaks,p)视角修饰(函数view(az,el)az-方位角;el-俯视角 省缺值为:az=-37.5;el=30例。观察不同视角的波峰图形z=peaks(40);subplot(2,2,1);mesh(z);subplot(2,2,2);mesh(z);view(-15,60);subplot(2,2,3);mesh(z);view(-90,0);subplot(2,2,4);mesh(z);view(-7,-10);其它修饰:a.水线修饰(waterfall)waterfall(peaks(30
43、)b.等高线修饰二维contour(Z,n)-绘制n条等高线C=contourc(Z,n)-计算n条等高线的坐标Clable(c)-给等高线加标注例、在二维平面上绘制peaks函数的10条等 高线contour(peaks,10);C=contourc(peaks,10);clabel(C)contour3(peaks,20)伪彩色图pcolor 常用于以二维平面图表现三维图形的效果,用颜色表示三维图形的高度。z=peaks(30)pcolor(z)4.4 图像与动画图像1.imread和imwrite函数 imread和imwrite函数分别用于将图像文件读入MATLAB工作空间,以及将图像
44、数据和色图数据一起写入一定格式的图像文件。2.image和imagesc函数 这两个函数用于图像显示。为了保证图像的显示效果,一般还应使用colormap函数设置图像色图。例 在E盘根目录下有一图像文件building.jpg,在图形窗口显示该图像。程序如下:x,cmap=imread(e:building.jpg);%读取图像的数据阵和色图阵 image(x);colormap(cmap);axis image off%保持宽高比并取消坐标轴 动画效果动画生成的步骤1.创建帧矩阵 moviein2.对动画中的每一帧生成图形,并把它们放到帧矩阵中 getframe3.从帧矩阵中回放动画小结:基本绘图函数 plot,plot3,mesh,surf要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定