资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第二章 MATLAB的图形功能,MATLAB的图形系统是建立在内部图形对象的管理技术上的。,线段、曲面、文字等图形元被称为图形对象,其外观特性由属性值来定义。,2维、3维图形对象的生成函数以及图形控制函数的使用方法。,2.1 平面图形与坐标系,2.1.1 图形窗口与坐标系,1.图形窗口,函数 figure 可以生成一个新的图形窗口,每一个图形窗口有一个唯一的序号 h,h 称为图形窗口句柄。,任何时候,只有一个窗口作为当前图形窗口。,用法:figure;h=figure;,figure(h),close(h),2.图形窗口内容打印,命令格式:print-设备名选项 文件名,3.坐标系,一个图形窗口可以有多个坐标系,坐标系也有相应的句柄,用函数 gca 可获当前的句柄。,axish)一个坐标系有以下要素,1坐标轴的文字说明,xlabel(*),ylabel(*),2坐标系的标题 title(*),3坐标系的图形元,4图形说明文字,text(x,y,*)gtext(*),(5)坐标网格线,grid on,grid off,(6)对当前坐标系进行控制和操作,axis(newx1,newx2,newy1,newy2),axis(auto),v=axis%取得当前坐标系的范围向量,axis(axis),axis on ,axis off,axis(ij)%将坐标系模式转换到矩阵坐标系,axis(xy)%将坐标系模式转换到笛卡尔坐标系,2.1.2 根本绘图函数,1向量式 plot(v),2参数式 plot(x,y),例:t=0:pi/100:2*pi;x=cos(t);y=sin(t);plot(x,y);axis equal,3矩阵式 plot(A),A:m*n 矩阵 以矩阵的行号向量为横坐标值 1:m,对应于A的每一列向量按向量式绘出折线或曲线,共n条。例如 演示函数 peaks 可生成矩阵函数。,4.多坐标系统,函数 subplot(m,n,k)将图形窗口分割为 m*n 的子区域,在第 k 块上定义一个坐标系。,4.混合式 plot(X,Y),X,Y都是向量,长度必须相等。,Y=1:49;plot(peaks,y),plot(peaks,rot90(peaks);,在区域-3,3*-3,3的等分网格上的函数值,M=peaks(20);plot(peaks),5.复向量式plot(z),plot(Z)是plot(real(Z),imag(Z)调用的简化形式,多个矩阵对调用 plot(X1,Y1,X2,Y2,),2.1.3 线型、顶点标记和颜色,plot(X,Y,S),plot(X1,Y1,S1,X2,Y2,S2,),例如:plot(x,y,-y,x,y,or),t=0:pi/100:2*pi;y1=sin(t);y2=sin(t+0.25);y3=sin(t+0.5),plot(t,y1);hold on;plot(t,y2,-);plot(t,y3,-.);hold off,2.1.4 其它2维绘图函数,1.bar,hist,ploar,fill等专用绘图函数。,2.多边形填充,例:t=0:0.05:2*pi;x=sin(t);fill(x,t,b),colormap(hot),fill(x,t,x),3.极坐标图形,polar(theta,rho),例如:t=0:0.01:2*pi;polar(t,sin(2*t).*cos(2*t),4.数学函数图形 x=(0:1/2000:1);plot(x,cos(tan(pi*x),2.2 3维图形,3维图形功能:3维数据显示、空间曲线、曲面、分块及填充,曲面光顺着色、视点变换、旋转、隐藏等功能与操作。,2.2.1 3,维图形函数,plot3、contour、contour3、image,mesh,meshc,meshz、3维网格曲面,surf、surfc、surfz,pcolor、,fill3、view,2.2.2 三维线性图形,1.向量式 plot(x,y,z),功能:在三维坐标系中,生成顺序连接顶点x(i),y(i),z(i),t=0:pi/50:10*pi;,plot3(cos(t),sin(t),t);,title(3D Helix),2.矩阵式 plot3(X,Y,Z),3.标准式 plot3(X,Y,Z,s),plot3(X,1,Y,1,Z,1,s,1,X,2,Y,2,Z,2,s,2,),2.2.3 三维曲面,1.平面网格点的生成,在Matlab中,首先要确定在一个平面区域D上 m*n 个小矩形块。,函数meshgrid用来生成 x-y 平面上的小矩形顶点坐标值的矩阵。,调用格式:X,Y=meshgrid(x,y)X,Y=meshgrid(x),x=-8:0.5:8;,y=x;,X,Y=meshgrid(x,y);,R=sqrt(X.2+Y.2)+eps;,Z=sin(R)./R;,mesh(Z),函数 mesh调用:,mesh(X,Y,Z,C),mesh(X,Y,Z),mesh(x,y,Z),2.网格曲面 函数 mesh,另外两个函数,meshc,meshz,meshz(Z),meshc(Z),.实曲面的绘制,函数surf,mesh(peaks),surf(peaks),shading faceted,shading flat,shading interp,surfl(peaks(200),-10 50);,colormap(gray);,shading flat,2.2.4等高线图形,函数contour contour3,contour(peaks,20),contour3(peaks,20),2.2.5 三维坐标系及图形元的控制,1.3维坐标系控制函数 axis(x1,x2,y1,y2,z1,z2),2.三维图形的视点 函数 view,view 的输入参数是球面坐标,关于原点的径度和纬度 仰角,elevation 仰角,azimuth,水平旋转,4种不同视点的图形,matappmatlabexviewex.m,2.透视效应,hidden off ,hidden on,mesh(peaks(20)+7),hold on,pcolor(peaks(20),hidden off,3.,曲面的裁截,利用 NaN 可以表示一些不可使用的数据,P=peaks;,P(30:40,20:30)=NaN*P(30:40,20:30);,subplot(1,2,1);surf(peaks);,subplot(1,2,2);surf(P);,2.3 MATLAB的色彩控制,2.3.1 色图初步,surf 三维彩色外表图绘制函数,surf(X,Y,Z,C)C:色彩矩阵,2.3.2 色彩控制,色彩调制函数 colormap,colormap(MAP),colormap(default),map=colormap,每种颜色都用一个长度为3 的实数向量表示,向量的元素取值范围 0,1。红、绿、蓝的光强度值。,红 绿 蓝 颜色 RGB 3元素组值,0 0 0 黑色,1 1 1 白色,1 0 0 红色,0 1 0 绿色,0 0 1 蓝色,2.3.3 光照控制,三维图形外表的光照图函数 surfl,2.4 图像处理,在Matlab的根本系统中,已经带有几个函数处理图像,进行伪色图像、动画演示等操作。,图像处理工具箱image processing toolbox),2.4.1 伪色图像,典型例子:pcolorex.m,Z=peaks;,pcolor(Z);,colormap(hot);,shading flat,hold on,contour(peaks,20,k);,hold off,2.4.2 图像显示技术,1.image,和 imagesc 函数,命令形式:image(X),例如有一幅图像的数值文件 gatlin.mat,其包括了图像矩阵X和调色板矩阵 map。,Load gatlin,image(X);,colormap(map);,axis equal,axis off,2.图像类型,Matlab的图像由两局部组成:图像数据矩阵、图像色谱调色板。为了有效使用全真颜色的图像,由3种类型:,1索引式图像,图像数据矩阵的元素定义为对应到色谱矩阵的索引号,为此索引式图像必须有自己的调色板 m*3的色谱矩阵map。,Image(X);colormap(map),2强度式图像,图像数据矩阵X的元素落在某个强度范围内,,0,1或0,255,其强度值以线性变换的方式映射成色谱矩阵的行索引号。,一般应用于灰度级的黑白图像。,imagesc(X,0,1);colormap(gray),假设不指定强度范围,根据图像数据中的最大元素值、最小元素值定义。,imagesc(X);colormap(map)或,imagesc(X,min(X(:)max(X(:);colormap(map),3全真颜色图像 没有调色板,3.图像数据格式,在Matlab 中用双精度浮点数64 bit)表示一个数据。,Matlab用单字节8 bit无符号整型数据记录图像数据。,4.读写图像文件,函数 imread 和 imwrite,支持的图像格式:,BPM*.bmp),HDF *.hdf),JPEG*.jpg),PCX (*.pcx),TIFF *.tif),XWD *.xwd),2.4.3 动画,系列图片的制作:getframe,系列图片的播放:movie,生成16帧图片的动画矩阵,M=moviein(16);,for j=1:16,plot(fft(eye(j+16),M(:,j)=getframe;,end,movie(M,30),nk=5;,n=2nk-1;,theta=pi*-n:2:n/n;,phi=(pi/2)*-n:2:n/n;,X=cos(phi)*cos(theta);,Y=cos(phi)*ones(size(theta);,C=hadamard(2nk);,mesh(X,Y,Z,C),
展开阅读全文