图形绘制与处理.ppt
1.3 绘图与处理,基本二维图形,一、绘制二维曲线的最基本函数1.plot函数plot函数的基本调用格式为:plot(x,y)其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。,例 1 在0X2区间内,绘制曲线 y=2e-0.5xsin(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)。,例2 某工厂2000年各月总产值(单位:万元)分别为22、60、88、95、56、23、9、10、14、81、56、23,试绘制折线图以显示出该厂总产值的变化情况。程序如下:p=22,60,88,95,56,23,9,10,14,81,56,23;plot(p),2含多个输入参数的plot函数含多个输入参数的plot函数调用格式为:plot(x1,y1,x2,y2,xn,yn)%其中xi和yi成对出现,该函数将分别按顺序取数据xi与yi进行绘图.3含选项的plot函数含选项的plot函数调用格式为:plot(x1,y1,选项1,x2,y2,选项2,xn,yn,选项n)%按照”选项”要求绘制指定属性的图形.,绘制图形线条属性是LineSpec参数来定义的.有如下属性:,(1)、线型属性,(2)、线条宽度属性和颜色属性,(3)、标记类型,例3 用不同线型和颜色在同一坐标内绘制曲线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(-0.5*x1).*sin(2*pi*x1);plot(x,y1,g:,x,y2,b-,x1,y3,rp);,4双纵坐标函数plotyy plotyy函数能把函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中。调用格式为:plotyy(x1,y1,x2,y2)其中x1y1对应一条曲线,x2y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1y1数据对,右纵坐标用于x2y2数据对。,例4 用不同标度在同一坐标内绘制曲线y1=e-0.5xsin(2x)及曲线y2=1.5e-0.1xsin(x)。程序如下:x1=0:pi/100:2*pi;x2=0: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);,5极坐标图polar函数用来绘制极坐标图,其调用格式为:polar(theta,rho,选项)%根据极坐标极角theta和极径rho绘图,选项的内容与plot函数相似。例如:绘制=sin(2)cos(2)的极坐标图。程序如下:theta=0:0.01:2*pi;rho=sin(2*theta).*cos(2*theta);polar(theta,rho,k);,6对数坐标图形 MATLAB提供了绘制双对数和单轴对数坐标曲线的函数,调用格式为:loglog(x1,y1,选项1,x2,y2,选项2,),semilogx(x1,y1,选项1,x2,y2,选项2,)semilogy(x1,y1,选项1,x2,y2,选项2,)%semilogx绘制的图形,纵轴采用线性坐标,横轴采用对数坐标;semilogy与其相反。,例如:绘制y=10 x2的对数坐标图并与直角线性坐标图进行比较。程序如下: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);semilogy(x,y);title(semilogy(x,y);grid on;subplot(2,2,4);loglog(x,y);title(loglog(x,y);grid on;,二、绘制图形的辅助操作 1.图形注释:通过选择图形窗口主菜单Insert下选项或者调用相应的标注函数。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 variable 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函数的调用格式为:axis(xmin xmax ymin ymax zmin zmax)指定二维图形x轴和y 轴的刻度范围。axis函数功能丰富,常用的用法还有:axis equal 纵、横坐标轴采用等长刻度axis square 使各坐标轴长度相同,产生正方形坐标系(缺省为矩形),但刻度增量未必相同axis auto 使用缺省设置(为自动刻度),axis off 取消坐标轴 axis on 显示坐标轴grid on/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。box on/off命令控制是加还是不加边界线,不带参数的box命令在两种状态之间进行切换。,例4.6 用图形保持功能在同一坐标内绘制曲线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);plot(x,y1,b:);axis(0,2*pi,-2,2);%设置坐标 hold on;%设置图形保持状态 plot(x,y2,k);grid on;%加网格线 box off;%不加坐标边框 hold off;%关闭图形保持,3.图形窗口的分割subplot 该函数用于创建与控制多个坐标轴,把当前窗口分成几个矩形部分,不同部分按行方向以数字进行标号。调用格式如下:subplot(m,n,p)%将一个窗口分成mn个小窗口,在第p个小窗口中创建坐标轴。例如:在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。程序如下: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);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);,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);%选择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(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);,三、绘制二维图形的其他函数1、条形图:用水平条形或垂直条形来表示向量或矩阵中的值.bar(Y)%将Y中的每一个分量绘制成一个条形。若Y为向量,则分别显示每个分量的高度,横坐标为1到length(Y);若Y为矩阵,则对每一行中分量创建的条形进行分组,在分别绘出,横坐标为1到Y矩阵的行数 bar(x,Y,选项)%在x指定的位置上绘制出Y中每一个分量的条形,其中x为严格递增向量.如果Y为矩阵,则bar将矩阵分解成几个行向量,在指定的横坐标处分别绘出条形 barh()绘制水平条形图,其中输入参数同bar,这里的”选项”包括设置条形的相对宽度(默认为0.8)、排列类型(包括grouped(为默认)或stacked)等,例如:绘制数据点的条形图,y=1:9;bar(y),y=1 2 3;4 5 6;7 8 9;bar(y),x=-4:0.4:4;bar(x,exp(-x.2),y=round(rand(5,3)*10);subplot(2,1,1)bar(y,group)subplot(2,1,2)bar(y,2),y=round(rand(5,4)*10);subplot(2,1,1)barh(y,group)subplot(2,1,2)barh(y,2),2、面积图area 该函数根据向量或矩阵中的数据连接成一条或多条曲线,并填充每条曲线下面的面积,其输入参数为向量或矩阵。area(Y)%绘制向量Y 的面积图或矩阵Y中每一列元素总和的面积图。area(X,Y)%该函数在X数值处绘制相应的Y数据,从而构成面积图。,若X为向量,则length(X)=length(Y)且X必须是单调的;若X为矩阵,则size(X)=size(Y),且X中每一列必须是单调的。,例如:根据矩阵绘制面积图,y=1 5 3;3 4 7;3 5 3;7 6 1;area(y)%根据矩阵绘制面积图 grid on%显示网格 set(gca,layer,top)%设置图层属性 set(gca,XTick,1:4)%在X轴上标注4个刻度,3、饼图 pie,饼图用于显示某个向量或矩阵中元素所占的比例。其输入参数为向量或矩阵。调用格式如下:pie(X)%应用X中的数据绘制不分离饼图。X中的每个元素在饼图中通过一个扇区来表示。X中元素X(i)所代表的扇形大小通过X(i)/sum(X)的大小来决定。pie(X,explode)%分离饼图。将一个扇区从饼形图中分离出,参数 explode为对应于X的为零或非零的向量或矩阵。与explode的非零值对应的部分将从饼形图中心分离出来。,explode必须与X具有相同大小,例如:根据向量创建一个饼图,并将特定扇区分离出来。,程序如下:x=5 3 0.5 2.5 2 9;explode=0 1 0 0 0 1;%定义控制向量 pie(x,explode)%绘制饼图,值为1表示从饼图中心分离出来,4、柱状图 hist,该函数用于显示数据的分布情况。n=hist(Y)%把向量Y中的元素分放在等间距的10个柱形中,且返回每一个柱形中的元素个数,若Y为矩阵,则按列对Y进行处理。n=hist(Y,x)%x为向量,返回值为Y中元素的分布。将Y中元素分放到length(x)个由x中元素指定的位置为中心的柱形中 n=hist(Y,nbins)%标量nbins用于指定柱形的数目,例如:创建一个服从高斯分布的数据的柱状图。程序如下:x=-4:0.1:4;%创建等间距数据 y=randn(1000,1);%创建随机数 hist(y,x)%绘制柱形图,5、阶梯图stairs,stairs(Y)%用参量Y的元素绘制阶梯图。若Y为向量,则横坐标x的范围从1到length(Y);若Y为矩阵,则根据Y的每一行绘制阶梯图,其中x轴的量度范围是从1到Y的行数 stairs(X,Y,选项)%X与Y为大小相同的向量或矩阵。选项指定了绘图所用的线型、标记符号和颜色,例如:创建函数的阶梯图,如下:x=0:0.4:10;stairs(x,cos(x).*sin(x),6、火柴杆图 stem 该函数用于绘制二维离散数据的火柴杆图。stem(Y)%按Y中元素的序列绘制火柴杆图。若Y为矩阵,则把Y分成几个行向量,在同一横坐标的位置上绘制一个行向量的火柴杆图。stem(x,y,选项)%意义同stairs,若选项为参数fill表示指定是否对火柴杆图末端的小圆圈填充颜色。,y=linspace(0,2*pi,20);h=stem(cos(y).*sin(y),fill,-,r);,例如 分别以条形图、阶梯图和火柴杆图形式绘制曲线y=2e-0.5x。程序如下:x=0:0.35:7;y=2*exp(-0.5*x);subplot(1,3,1);bar(x,y,g);title(bar(x,y,g);axis(0,7,0,2);subplot(1,3,2);stairs(x,y,b);title(stairs(x,y,b);axis(0,7,0,2);subplot(1,3,3);stem(x,y,k);title(stem(x,y,k);axis(0,7,0,2);,某次考试优秀、良好、中等、及格、不及格的人数分别为:7,17,23,19,5,试用饼图作成绩统计分析。程序如下:x=7,17,23,19,5 explode=1 0 0 0 1;pie(x,explode);title(饼图);legend(优秀,良好,中等,及格,不及格);,t1=(0:11)/11*pi;y1=sin(t1).*sin(9*t1);t2=(0:100)/100*pi;y2=sin(t2).*sin(9*t2);subplot(2,2,1),plot(t1,y1,r.),axis(0,pi,-1,1),title(点图)subplot(2,2,2),plot(t2,y2,r.),axis(0,pi,-1,1),title(虚线图)subplot(2,2,3),plot(t1,y1,-r+),axis(0,pi,-1,1),title(折线图)subplot(2,2,4),plot(t2,y2),axis(0,pi,-1,1),title(光滑曲线图),三维图形,绘制三维曲线的最基本函数 plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,xn,yn,zn,选项n)例 绘制空间曲线。程序如下:t=0:pi/50:2*pi;x=8*cos(t);y=4*sqrt(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;,三维曲面1.绘制三维曲面的函数 surf函数和mesh函数的调用格式为:mesh(x,y,z,c)surf(x,y,z,c)2.实例例、x,y=meshgrid(-3:0.1:3);%创建数据 z=peaks(x,y);%计算函数值Meshz(x,y,z);%绘制图形,例、用三维曲面图表现函数z=sin(y)cos(x)。程序1:x=0:0.1:2*pi;x,y=meshgrid(x);z=sin(y).*cos(x);mesh(x,y,z);xlabel(x-axis),ylabel(y-axis),zlabel(z-axis);title(mesh);,例、n=25-1;x,y,z=sphere(n);%创建数据C=hadamard(25);%设置颜色数据Surf(x,y,z,c);%绘制图形Colormap(1 1 0;0 1 1);%设置颜色,程序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=x2-2y2构成的曲面形状及与平面z=a的交线。程序如下: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.*z2;%求这些点上的x,y,z坐标,即交线坐标 subplot(1,2,2);plot3(xx(r0=0),yy(r0=0),zz(r0=0),*);%在第2子图画出交线 axis(v);grid;%第2子图的坐标设置,其他三维图形 条形图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是bar3、pie3和fill3。此外,还有三维曲面的等高线图。等高线图分二维和三维两种形式,分别使用函数contour和contour3绘制。例、绘制多峰函数的等高线图。x,y,z=peaks;contour3(x,y,z,12,k);%其中12代表高度的等级数xlabel(x-axis),ylabel(y-axis),zlabel(z-axis);title(contour3 of peaks);,X,Y,Z=peaks;%x,y及z轴的数据由peaks函数定义 subplot(2,2,1)contour(Z,20)%画出peaks的Z轴二维等值线图,20为等值线的数目 subplot(2,2,2)contour(X,Y,Z,20)%画出peaks的二维等值线图,注意x,y轴与上图不同 subplot(2,2,3)contour3(Z,20)%画出peaks的Z轴二维等值线图 subplot(2,2,4)contour3(X,Y,Z,20)%画出peaks的三维等值线图,注意x,y轴与上图不同,三维条形图y=cool(7);subplot(2,2,1)bar3(y,detached)%定义线形subplot(2,2,2)bar3(y,0.25,detached)%条宽度subplot(2,2,3)bar3(y,grouped)%定义线形subplot(2,2,4)bar3(y,stacked)%定义线形,三维柱形图t=0:pi/20:2*pi;x,y,z=cylinder(2+sin(t).*cos(t);surf(x,y,z),三维带形图x,y=meshgrid(-3:0.5:3,-3:1:3);z=peaks(x,y);ribbon(y,z),三维饼图subplot(1,2,1)x=1 3 0.5 2.5 2;explode=0 1 0 1 0;pie3(x,explode)subplot(1,2,2)x=5 3 6 1.5 8 4 10;pie3(x),三维图形的精细处理,图形的裁剪处理 MATLAB定义的NaN常数可以用于表示那些不可使用的数据,利用这种特性,可以将图形中需要裁剪部分对应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的。,例:裁掉例4.15三维曲面图中z0.25部分。程序如下 x=0:0.1:2*pi;x,y=meshgrid(x);z=sin(y).*cos(x);I,J=find(z0.25);for ii=1:length(I)z(I(ii),J(ii)=NaN;end surf(x,y,z);,视点处理 MATLAB提供了设置视点的函数view。其调用格式为:view(az,el)其中az为方位角,el为仰角,它们均以度为单位。系统缺省的视点定义为方位角-37.5,仰角30。,例 从不同视点绘制多峰函数曲面。程序如下:subplot(2,2,1);mesh(peaks);view(-37.5,30);%指定子图1的视点 title(azimuth=-37.5,elevation=30)subplot(2,2,2);mesh(peaks);view(0,90);%指定子图2的视点 title(azimuth=0,elevation=90)subplot(2,2,3);mesh(peaks);view(90,0);%指定子图3的视点 title(azimuth=90,elevation=0)subplot(2,2,4);mesh(peaks);view(-7,-10);%指定子图4的视点 title(azimuth=-7,elevation=-10),色彩处理 1.颜色的向量表示 MATLAB除用字符表示颜色外,还可以用含有3个元素的向量表示颜色。2.色图 色图是m3 的数值矩阵,它的每一行是RGB三元组。色图矩阵可以人为地生成,也可以调用MATLAB提供的函数来定义色图矩阵。除plot及其派生函数外,mesh、surf等函数均使用色图着色。图形窗口色图的设置和改变,使用函数:colormap(m)其中m代表色图矩阵。3.三维表面图形的着色 三维表面图实际上就是在网格图的每一个网格片上涂上颜色。surf函数用缺省的着色方式对网格片着色。除此之外,还可以用shading命令来改变着色方式。,例:3种图形着色方式的效果展示。程序如下: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);shading interp;,光照处理 MATLAB提供了灯光设置的函数,其调用格式为:light(Color,选项1,Style,选项2,Position,选项3)例:光照处理后的多峰函数曲面。程序如下:z=peaks(20);subplot(1,2,1);surf(z);light(Posi,0,20,10);shading interp;hold on;plot3(0,20,10,p);text(0,20,10,light);subplot(1,2,2);surf(z);light(Posi,20,0,10);shading interp;hold on;plot3(20,0,10,p);text(20,0,10,light);,符号函数图形表示,一、绘制符号函数的等高线图1、ezcontour(f)绘制二元符号函数f=f(x,y)的等高线图,这里,函数f将显示默认的平面区域-2pix2pi,-2piy2pi内的函数值。例:绘制下面函数的等高线图。,其中的省略号用英文的句号来输入,可以方便观察定义的函数。,如果要求在指定的区域内绘制二元函数f(x,y)的等高线图,则可以使用如下命令:2、ezcontour(f,xmin,xmax,ymin,ymax)3、ezcontour(f,min,max)其中显示的区域为(minxmax,minymax).,如果需要不同颜色填充等高线图可以使用如下函数命令:4、ezcontourf(f),二、符号函数的三维网格图1、ezmesh(f)绘制二元符号函数f=f(x,y)的网格图。函数f将显示默认的平面区域-2pix2pi,-2piy2pi内函数f的图形。,2、在指定区域内绘制二元函数f(x,y)的网格图:ezmesh(f,xmin,xmax,ymin,ymax)ezmesh(f,min,max)其中显示的区域为(minxmax,minymax).,3、在一个圆形区域绘制网格图,ezmesh(f,circ),三、参数形式的三维网格图1、ezmesh(x,y,z)在默认的区域-2pis2pi,-2pit2pi内绘制参数形式x=x(s,t),y=y(s,t),z=z(s,t)的图形。,2、在指定区域内绘制参数形式的三维网格图:,ezmesh(x,y,z,smin,smax,tmin,tmax)ezmesh(x,y,z,min,max)其中显示的区域为(minsmax,mintmax).,四、曲面网格图与等高线图的混合图1、ezmeshc(f)绘制二元符号函数f=f(x,y)的网格图,同时在xy平面上绘制其等高线图。函数f将显示默认的区域-2pix2pi,-2piy2pi内函数f的图形。,例1,例2,2、在指定区域内绘制曲面网格图与等高线图的混合图:,ezmeshc(f,xmin,xmax,ymin,ymax)ezmeshc(f,min,max)其中显示的区域为(minxmax,minymax).,3、ezmeshc(x,y,z)在默认的区域-2pis2pi,-2pit2pi内绘制参数形式x=x(s,t),y=y(s,t),z=z(s,t)的网格图形及其等高线图。4、在指定区域内绘制参数形式的三维网格图及其等高线图:,ezmeshc(x,y,z,smin,smax,tmin,tmax)ezmeshc(x,y,z,min,max)其中显示的区域为(minsmax,mintmax).,五、符号函数的图形1、ezplot(f)绘制函数f=f(x)在默认范围-2pix2pi上的图形。,2、ezplot(f,min,max)绘制函数f=f(x)在指定范围minxmax上的图形。,3、ezplot(f,xmin,xmax,ymin,ymax)在指定区域内绘制隐函数f(x,y)=0的图形。4、ezplot(f,min,max)在区域(minxmax,minymax)内绘制隐函数f(x,y)=0的图形。,如果直接输入ezplot(f),则在-2pix,y2pi内绘制隐函数f(x,y)=0的函数图形。,5、ezplot(x,y)在默认的范围0t2pi 内绘制参数形式函数x=x(t)和y=y(t)的图形。,6、ezplot(x,y,tmin,tmax)在指定的范围tminttmax 内绘制参数形式函数x=x(t)和y=y(t)的图形。,六、三维参数曲线图1、ezplot3(x,y,z)在默认的范围0t2pi 内绘制空间曲线x=x(t)、y=y(t)和z=z(t)的图形。,2、ezplot3(x,y,z,tmin,tmax)在指定的范围tminttmax 内绘制空间曲线x=x(t)、y=y(t)和z=z(t)的图形。3、ezplot3(x,y,z,tmin,tmax,animate)以动画形式绘制空间三维曲线图。,七、极坐标图形ezpolar(f)ezpolar(f,a,b)八、三维彩色曲面图ezsurf(f)九、曲面图与等高线图的混合图ezsurfc(f),图像与动画,图像 1.imread和imwrite函数 imread和imwrite函数分别用于将图像文件读入MATLAB工作空间,以及将图像数据和色图数据一起写入一定格式的图像文件。2.image和imagesc函数 这两个函数用于图像显示。为了保证图像的显示效果,一般还应使用colormap函数设置图像色图。,例:在E盘根目录下有一图像文件building.jpg,在图形窗口显示该图像。程序如下:x,cmap=imread(e:building.jpg);%读取图像的数据阵和色图阵 image(x);colormap(cmap);axis image off%保持宽高比并取消坐标轴,动画 1.getframe函数 getframe函数可截取每一幅画面信息而形成一个很大的列向量。该向量可保存到一个变量中。显然,保存n幅图就需一个大矩阵。2.moviein函数 moviein(n)函数用来建立一个足够大的n列矩阵。该矩阵用来保存n幅画面的数据,以备播放。3.movie函数 movie(m,n)函数以每秒n幅图形的速度播放由矩阵m的列向量所组成的画面。,例:播放一个直径不断变化的球体。程序如下 x,y,z=sphere(50);m=moviein(30);%建立一个30列大矩阵 for i=1:30 surf(i*x,i*y,i*z)%绘制球面 m(:,i)=getframe;%将球面保存到m矩阵 end movie(m,10);%以每秒10幅的速度播放球面,