最新-教你用MATLAB快速作一维二维三维图-PPT精品课件

上传人:汽*** 文档编号:567497482 上传时间:2024-07-20 格式:PPT 页数:55 大小:436.51KB
返回 下载 相关 举报
最新-教你用MATLAB快速作一维二维三维图-PPT精品课件_第1页
第1页 / 共55页
最新-教你用MATLAB快速作一维二维三维图-PPT精品课件_第2页
第2页 / 共55页
最新-教你用MATLAB快速作一维二维三维图-PPT精品课件_第3页
第3页 / 共55页
最新-教你用MATLAB快速作一维二维三维图-PPT精品课件_第4页
第4页 / 共55页
最新-教你用MATLAB快速作一维二维三维图-PPT精品课件_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《最新-教你用MATLAB快速作一维二维三维图-PPT精品课件》由会员分享,可在线阅读,更多相关《最新-教你用MATLAB快速作一维二维三维图-PPT精品课件(55页珍藏版)》请在金锄头文库上搜索。

1、数学建模与数学实验数学建模与数学实验 MATLAB作图作图二维图形二维图形三维图形三维图形图形处理图形处理实例实例作作业业特殊二、三维图形特殊二、三维图形 Matlab作图是通过描点、连线来实现的,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的坐标(即横坐标和纵坐标),然后将该点集的坐标传给Matlab函数画图. 命令为:plot(x,y,s)plot(x,y)-画实线plot(x,y1,s1,x,y2,s2,x,yn,sn) -将多条线画在一起X,Y是向量,分别表示点集的横坐标和纵坐标线型、颜色、点形1.曲线图曲线图线型 符号-:-.-含义实线虚线点划线双划线色彩 符号bgrcmy

2、kw含义蓝绿红青品红黄黑白点形 符号.+*ov含义点加号 星号圈三角符例例 在0,2*pi用红线画sin(x),用绿圈画cos(x). x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,r,x,z,g0)解解Matlabliti1图形标记图形标记在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。title(加图形标题);xlabel(加X轴标记);ylabel(加Y轴标记);text(X,Y,添加文本);gridon加网格线text(x,y,string) adds the stri

3、ng in quotes(引号) to thelocationspecifiedbythepoint(x,y).bulletpirightarrow右箭头EdgeColor - Color of the rectangles edge (none bydefault).EdgeColor,red设定坐标轴设定坐标轴用户若对坐标系统不满意,可利用axis命令对其重新设定。axis(xmin xmax ymin ymax) 设定最大和最小值axis (auto) 将坐标系统返回到自动缺省状态axis (square) 将当前图形设置为方形axis (equal) 两个坐标因子设成相等axis (o

4、ff) 关闭坐标系统axis (on) 显示坐标系统在坐标范围0X2,-2Y2内重新绘制正弦曲线,其程序为:x=linspace(0,2*pi,60);生成含有60个数据元素的向量Xy=sin(x);plot(x,y);axis (0 2*pi -2 2);设定坐标轴范围加图例加图例给图形加图例命令为legend。该命令把图例放置在图形空白处,用户还可以通过鼠标移动图例,将其放到希望的位置。格式:legend(图例说明图例说明,图例说明图例说明); 为正弦、余弦曲线增加图例,其程序为:x=0:pi/100:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2, -);

5、legend(sin(x),cos(x);Matlabaaa2.符号函数符号函数(显函数、隐函数和参数方程显函数、隐函数和参数方程)画图画图(1) ezplotezplot(x(t),y(t),tmin,tmax)表示在区间tminttmax绘制参数方程x=x(t),y=y(t)的函数图ezplot(f(x),a,b)表示在axb绘制显函数f=f(x)的函数图ezplot(f(x,y),xmin,xmax,ymin,ymax)表示在区间xminxxmax和yminyymax绘制隐函数f(x,y)=0的函数图例例 在0,pi上画y=cos(x)的图形解解输入命令ezplot(sin(x),0,p

6、i)Matlabliti25解解输入命令ezplot(cos(t)3,sin(t)3,0,2*pi)Matlabliti41解解输入命令ezplot(exp(x)+sin(x*y),-2,0.5,0,2)Matlabliti40(2) fplot注意:1 fun必须是M文件的函数名或是独立变量为x的字符串. 2 fplot函数不能画参数方程和隐函数图形,但在一个图上可以画多个图形。fplot(fun,lims) 表示绘制字符串fun指定的函数在lims=xmin,xmax的图形.或lims=xmin,xmax,ymin,ymax解解 先建M文件myfun1.m: function Y=myfu

7、n1(x) Y=exp(2*x)+sin(3*x.2)再输入命令:fplot(myfun1,-1,2)Matlabliti43Matlabliti28解解 输入命令: fplot(tanh(x),sin(x),cos(x),2*pi*-1111)例例在-2,2范围内绘制函数tanh的图形解解 fplot(tanh,-2,2)Matlabliti42subplot(m,n,p)该命令将当前图形窗口分成mn个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。 subplot函数例在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为:x=linspace(0,2*pi,

8、60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps); eps为系统内部常数ct=cos(x)./(sin(x)+eps);subplot(2,2,1); 分成22区域且指定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)

9、;title(cotangent(x);axis (0 2*pi -40 40);4. 对数坐标图对数坐标图在很多工程问题中,通过对数据进行对数转换可以更清晰地看出数据的某些特征,在对数坐标系中描绘数据点的曲线,可以直接地表现对数转换.对数转换有双对数坐标转换和单轴对数坐标转换两种.用loglog函数可以实现双对数坐标转换,用semilogx和semilogy函数可以实现单轴对数坐标转换.loglog(Y)表示x、y坐标都是对数坐标系semilogx(Y)表示x坐标轴是对数坐标系semilogy()表示y坐标轴是对数坐标系plotyy 有两个y坐标轴,一个在左边,一个在右边例例 用方形标记创建

10、一个简单的loglog解解 输入命令:x=logspace(-1,2);loglog(x,exp(x),-s)gridon%标注格栅Matlabliti37例例创建一个简单的半对数坐标图解解输入命令:x=0:.1:10;semilogy(x,10.x)Matlabliti38例例 绘制y=x3的函数图、对数坐标图、半对数坐标图Matlabliti22返回6 其它图形函数其它图形函数除plot等基本绘图命令外,Matlab系统提供了许多其它特殊绘图函数,这里举一些代表性例子,更详细的信息用户可随时查阅在线帮助,其对应的M-file文件存放在系统matlabtoolboxmatlab目录下。6.1

11、阶梯图形阶梯图形函数stairs(x,y)可以绘制阶梯图形,如下列程序段:x=-2.5:0.25:2.5;y=exp(-x.*x);stairs(x,y); 绘制阶梯图形命令title(stairs plot);6.2 条形图形条形图形函数bar(x,y)可以绘制条形图形,如下列程序段将绘制条形图形x=-2.5:0.25:2.5;y=exp(-x.*x);bar(x,y); 绘制条形图命令6.3 填充图形填充图形fill(x,y,c)函数用来绘制并填充二维多边图形,x和y为二维多边形顶点坐标向量。字符c规定填充颜色,其取值前已叙述。下述程序段绘制一正方形并以黄色填充:x=0 1 1 0 0;

12、正方形顶点坐标向量y=0 0 1 1 0;fill(x,y,y);绘制并以黄色填充正方形图再如:x=0:0.025:2*pi;y=sin(3*x);fill(x,y,0.5 0.3 0.4); 颜色向量Matlab系统可用向量表示颜色,通常称其为颜色向量。基本颜色向量用r g b表示,即RGB颜色组合;以RGB为基本色,通过 r,g,b在01范围内的不同取值可以组合出各种颜色。二维绘图函数小结二维绘图函数小结plot 二维图形基本函数fplot f(x)函数曲线绘制fill 填充二维多边图形polar 极坐标图bar 条形图loglog 双对数坐标图semilogx X轴为对数的坐标图semi

13、logy Y轴为对数的坐标图stairs 阶梯形图axis 设置坐标轴clf 清除图形窗口内容close 关闭图形窗口ezplot 符号函数figure 创建图形窗口grid 放置坐标网格线gtext 用鼠标放置文本hold 保持当前图形窗口内容subplot 创建子图text 放置文本title 放置图形标题xlabel 放置X轴坐标标记ylabel 放置Y轴坐标标记Subplot 多子图三维图形三维图形1、空间曲线空间曲线2、空间曲面空间曲面返回plot3(x,y,z,s) 空空 间间 曲曲 线线 1、 一条曲线一条曲线 例例 在区间0,10*pi画出参数曲线x=sin(t),y=cos(

14、t), z=t. Matlabliti8 解解 t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) rotate3d %旋转n维向量,分别表示曲线上点集的横坐标、纵坐标、函数值指定颜色、线形等 plot3(x,y,z)2、多条曲线多条曲线例 画多条曲线观察函数Z=(X+Y).2. (这里meshgrid(x,y)的作用是产生一个以向量x为行、向量y为列的矩阵)Matlabliti9其中x,y,z都是m*n矩阵,其对应的每一列表示一条曲线.解 x=-3:0.1:3;y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; plot3(X,Y,Z

15、)返回函数格式:plot3(x1,y1,z1,c1,x2,y2,z2,c2,)其中x1,y1,z1表示三维坐标向量,c1,c2表示线形或颜色。函数功能:以向量x,y,z为坐标,绘制三维曲线。2、多条曲线多条曲线例例绘制三维螺旋曲线,其程序为:t=0:pi/50:10*pi;y1=sin(t),y2=cos(t);plot3(y1,y2,t);title(helix),text(0,0,0,origin);xlabel(sin(t),ylabel(cos(t),zlabel(t);gridon;空空 间间 曲曲 面面例 画函数Z=(X+Y).2的图形. 解 x=-3:0.1:3; y=1:0.1

16、:5; X,Y=meshgrid(x,y); Z=(X+Y).2; surf(X,Y,Z) shading flat %将当前图形变得平滑Matlabliti11(1) surf(x,y,z)画出数据点(x,y,z)表示的曲面数据矩阵。分别表示数据点的横坐标、纵坐标、函数值(2) Mesh(x,y,z) 解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; mesh(X,Y,Z) Matlabliti24例 画出曲面Z=(X+Y).2在不同视角的网格图. 画网格曲面数据矩阵。分别表示数据点的横坐标、纵坐标、函数值mesh函数用于绘制三维网

17、格图。在不需要绘制特别精细的三维曲面结构图时,可以通过绘制三维网格图来表示三维曲面。三维曲面的网格图最突出的优点是:它较好地解决了实验数据在三维空间的可视化问题。在图形上加格栅、图例和标注在图形上加格栅、图例和标注定制坐标定制坐标图形保持图形保持分割窗口分割窗口缩放图形缩放图形改变视角改变视角图形处理返回动动 画画1、在图形上加格栅、图例和标注、在图形上加格栅、图例和标注(1)grid on: 加格栅在当前图上 grid offgrid off: 删除格栅处理图形处理图形(2)hh = xlabel(string): 在当前图形的x轴上加图例stringhh = ylabel(string):

18、 在当前图形的y轴上加图例stringhh = title(string): 在当前图形的顶端上加图例stringhh = zlabel(string): 在当前图形的z轴上加图例string例例 在区间0,2*pi画sin(x)的图形,并加注图例“自变量 X”、“函数Y”、“示意图”, 并加格栅.解解 x=linspace(0,2*pi,30); y=sin(x); plot(x,y) xlabel(自变量X) ylabel(函数Y) title(示意图) grid onMatlabliti2 (3) hh = gtext(string) 命令gtext(string)用鼠标放置标注在现有的

19、图上.运行命令gtext(string)时,屏幕上出现当前图形,在图形上出现一个交叉的十字,该十字随鼠标的移动移动,当按下鼠标左键时,该标注string放在当前十交叉的位置. 例例 在区间0,2*pi画sin(x),并分别标注“sin(x)” ”cos(x)”.解解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) gtext(sin(x);gtext(cos(x)Matlabliti3返回2、定制坐标、定制坐标axis(xmin xmax ymin ymax zmin zmax)例例 在区间0.005,0.01显示sin(1/x

20、)的图形。解解 x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y) axis(0.005 0.01 1 1)Matlabliti4返回定制图形坐标将坐标轴返回到自动缺省值axis autox、y、z的最大、最小值3、图形保持、图形保持(1) hold on hold of例例 将y=sin(x)、y=cos(x)分别用点和线画出在同一屏幕上。解解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x) plot(x,z,:) hold on Plot(x,y)Matlabliti5保持当前图形,以便继续画图到当前

21、图上释放当前图形窗口(2) figure(h)例例 区间0,2*pi新建两个窗口分别画出y=sin(x); z=cos(x)。解解 x=linspace(0,2*pi,100); y=sin(x);z=cos(x); plot(x,y); title(sin(x); pause figure(2); plot(x,z); title(cos(x);Matlabliti6返回新建h窗口,激活图形使其可见,并把它置于其它图形之上4、分割窗口、分割窗口h=subplot(mrows,ncols,thisplot)划分整个作图区域为mrows*ncols块(逐行对块访问)并激活第thisplot块,其

22、后的作图语句将图形画在该块上。激活已划分为mrows*ncols块的屏幕中的第thisplot块,其后的作图语句将图形画在该块上。命令Subplot(1,1,1)返回非分割状态。subplot(mrows,ncols,thisplot) subplot(1,1,1) 解解x=linspace(0,2*pi,100); y=sin(x); z=cos(x); a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps) subplot(2,2,1);plot(x,y),title(sin(x) subplot(2,2,2);plot(x,z),title(cos(x) subp

23、lot(2,2,3);plot(x,a),title(sin(x)cos(x) subplot(2,2,4);plot(x,b),title(sin(x)/cos(x)例例 将屏幕分割为四块,并分别画出y=sin(x),z=cos(x),a=sin(x)*cos(x),b=sin(x)/cos(x)。Matlabliti7返回5、缩放图形、缩放图形zoom on单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为中心的图形放大2倍;单击鼠标右键,则缩小2倍解解 x=linspace(0,2*pi,30); y=sin(x); Plot(x,y) zoom on Matlabliti13例例 缩放

24、y=sin(x)的图形zoom off为当前图形打开缩放模式关闭缩放模式返回6. 改变视角改变视角view (1)view(a,b) 命令view(a,b)改变视角到(a,b),a是方位角,b为仰角。缺省视角为(-37.5,30)。 解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; subplot(2,2,1), mesh(X,Y,Z) subplot(2,2,2), mesh(X,Y,Z),view(50,-34) subplot(2,2,3), mesh(X,Y,Z),view(-60,70) subplot(2,2,4), me

25、sh(X,Y,Z),view(0,1,1)Matlabliti10例 画出曲面Z=(X+Y).2在不同视角的网格图. view用空间矢量表示的,三个量只关心它们的比例,与数值的大小无关,x轴view(1,0,0),y轴view(0,1,0),z轴view(0,0,1)。(2)view(x,y,z)返回7 动画设计动画设计如果将Matlab产生的多幅图形保存起来,并利用系统提供的函数进行播放,就可产生动画效果。系统所提供的动画功能函数有getframe、moviein和movie。getframe函数函数getframe函数可将当前图形窗口作为一个画面取下并保存,格式为:m=getframe它将

26、每一帧画面信息数据截取下来整理成列向量。该函数截取图形的点阵信息,图形窗口的大小,对数据向量的大小影响较大,窗口越大,所需存储容量越大。而图形的复杂性对数据容量要求没有直接的关系。moviein函数函数函数m=moviein(n)用来建立一个足够大的n列的矩阵m,用来保存n幅画面的数据,以备播放。movie函数函数movie(m,n)以每秒n幅图形的速度播放由矩阵m的列向量所组成的画面。例例播放一个不断变化的眼球程序段。m=moviein(20); 建立一个20个列向量组成的矩阵for j=1:20 plot(fft(eye(j+10) 绘制出每一幅眼球图并保存到m矩阵中 m(:,j)=get

27、frame;endmovie(m,10);以每秒不超过帧的速度播放画面次再如下述程序段播放一个直径不断变化的球体。n=30x,y,z=spherem=moviein(n);for j=1:n surf(i*x,i*y,i*z) m(:,j)=getframe;endmovie(m,30);Matlabliti14返回 例 将曲面peaks做成动画。 解 x,y,z=peaks(30); surf(x,y,z) axis(-3 3 -3 3 -10 10) m=moviein(15); for i=1:15 view(-37.5+24*(i-1),30) m(:,i)=getframe; end

28、 movie(m)注:为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:特殊二、三维图形特殊二、三维图形1、特殊的二维图形函数特殊的二维图形函数2、特殊的三维图形函数特殊的三维图形函数返回特殊的二维图形函数特殊的二维图形函数1、极坐标图:、极坐标图:polar (theta,rho,s)用角度theta(弧度表示)和极半径rho作极坐标图,用s指定线型。例解:theta=linspace(0,2*pi),rho=sin(2*theta).*cos(2*theta);polar(theta,rho,g)titl

29、e(Polarplotofsin(2*theta).*cos(2*theta);Matlabliti152、 散点图散点图: scatter(X,Y,S,C)%S-size C-color 在向量X和Y的指定位置显示彩色圈X和Y必须大小相同解解输入命令:loadseamount%seamountsareunderwatermountains.scatter(x,y,5,z)Matlabliti293、平面等值线图:平面等值线图: contour (x,y,z,n)绘制n个等值线的二维等值线图解解输入命令:X,Y=meshgeid(-2:.2:2,-2:.2:3);Z=X.*exp(-X.2-Y

30、.2);C,h=contour(X,Y,Z);clabel(C,h)%沿线标识法colormapcoolMatlabliti34例例 绘制seamount散点图返回特殊的三维图形函数特殊的三维图形函数1、空间等值线图:、空间等值线图: contour 3(x,y,z,n)其中n表示等值线数。例例山峰的三维和二维等值线图。解x,y,z=peaks; subplot(1,2,1) contour3(x,y,z,16,s) grid, xlabel(x-axis),ylabel(y-axis) zlabel(z-axis) title(contour3 of peaks); subplot(1,2,

31、2) contour(x,y,z,16,s) grid, xlabel(x-axis), ylabel(y-axis) title(contour of peaks);Matlabliti183、三维散点图三维散点图 scatter3(X,Y,Z,S,C) 在向量X,Y和Z指定的位置上显示彩色圆圈. 向量X,Y和Z的大小必须相同.解解 输入命令:x,y,z=sphere(16);X=x(:)*.5 x(:)*.75 x(:);Y=y(:)*.5 y(:)*.75 y(:);Z=z(:)*.5 z(:)*.75 z(:);S=repmat(1 .75 .5*10,prod(size(x),1);

32、C=repmat(1 2 3,prod(size(x),1);scatter3(X(:),Y(:),Z(:),S(:),C(:),filled),view(-60,60)例例 绘制三维散点图。Matlabliti32返回绘制山区地貌图绘制山区地貌图 要在某山区方圆大约27平方公里范围内修建一条公路,从山脚出发经过一个居民区,再到达一个矿区。横向纵向分别每隔400米测量一次,得到一些地点的高程:(平面区域0=x=5600,0=y=4800),需作出该山区的地貌图和等高线图。Matlabshanqu返回(1)绘制二条曲线,的取值在,以为步长,一条正弦曲线,一条余弦曲线,线宽为6个像素,正弦曲线为绿

33、色,余弦曲线为红色,线型分别为实线和虚线.(2)在直角坐标系下绘制函数的图像,在极坐标系下绘制函数的图像.(3)绘制三维曲线(4)绘制函数的网格图、表面图和等高线图.(5)使用箭头、矩形对(1)中所绘制的图形进行标注,用矩形圈出图形在处的点,并用箭头指向文本框,文本框中表示该点横、纵坐标的值.(6)绘制某班学生的籍贯构成比例的饼图,并将最大的一块分离出来.实验作业实验作业-课内作业课内作业1、在同一平面中的两个窗口分别画出心形线和球面。要求: 1、在图形上加格栅、图例和标注2、定制坐标3、以不同角度观察球面2、以不同的视角观察球面和圆柱面所围区域。3在02范围内绘制二维曲线图y=sin(x)*cos(5x)。4在02范围内绘制以Y轴为对数的二维曲线图。y=|1000sin(4x)|+15. 在62范围内用plot和fplot函数分别绘制二维曲线图。6绘制z=sin(x)*cos(y)的三维网格和三维曲面图,x,y变化范围均为02。实验作业实验作业-课外作业课外作业

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号