MATLAB教程课件

上传人:紫** 文档编号:242865336 上传时间:2024-09-10 格式:PPT 页数:192 大小:2.60MB
返回 下载 相关 举报
MATLAB教程课件_第1页
第1页 / 共192页
MATLAB教程课件_第2页
第2页 / 共192页
MATLAB教程课件_第3页
第3页 / 共192页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MATLAB,1 MATLAB,简介,1,Matlab,简介,在欧美各高等院校,,Matlab,已经成为线性代数、数值分析、数理统计、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,已成为大学生必须掌握的基本技能之一。,Matlab,功能强大,、,简单易学,、,编程效率高,,深受广大科技工作者的欢迎。,Matlab,是一种广泛应用于,工程计算,及,数值分析,领域的新型高级语言,自 1984 年推向市场以来,历经二十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。,2,Matlab,简介,Matlab,:,Mat,rix,Lab,oratory,矩阵实验室,Matlab,的发展,1980,年,,Moler,教授用,Fortran,语言编写了集,命令翻译,、,科学计算,于一身的一套交互式软件系统。,1984,年,,Moler,等成立了,The,MathWorks,的公司,用,C,语言,完全改写,Matlab,,,并推出第一个商业版。,增添图形图像处理、符号运算、以及与其他流行软件 的接口功能,使得,Matlab,的功能越来越强大。,到九十年代,在国际上 30 几个数学类科技应用软件中,,Matlab,在数值计算方面独占鳌头。,3,目前,,Matlab,已成为世界顶尖的数学应用软件,以其强大的工程计算、算法研究、工程绘图、应用程序开发、数据分析和动态仿真等功能,在航空航天、机械制造和工程建筑等领域发挥着越来越重要的作用。就影响而言,至今仍然没有一个别的计算软件可与,Matlab,匹敌。,Matlab,的发行,1984年,,Matlab,1.0 (,DOS,版,182,K,20,多个函数),1992年,,Matlab,4.0,(93年推出,Windows,版,加入,simulink,)1994年,,Matlab,4.2,(得到广泛重视和应用),199,9,年,,Matlab,5.3,(真正实现,32,位运算)2002年,,Matlab,6.5,(采用,JIT,加速器),2004年,,Matlab,7.0,自2006年起,,Matlab,每年更新两次,Matlab,简介,4,购买(下载),Matlab,软件,Matlab,的安装,插入光盘,自动运行; 或点击安装程序,setup.exe,必须安装的部件,Matlab,Symbolic Math Toolbox,Extended Symbolic Math,这里以,Matlab,7.0.4,为例,自,R2008a,开始增加了激活要求,5,Matlab,的特点与功能,Matlab,具有很强的数值计算功能,Matlab,以,矩阵,作为数据操作的基本单位, 但无需预先指定矩阵维数(,动态定维,),按照,IEEE,的数值计算标准进行计算,提供十分丰富的数值计算函数,方便计算,提高效率,Matlab,命令与数学中的符号、公式非常接近, 可读性强,容易掌握,Matlab,是一个交互式软件系统,输入一条命令,立即就可以得出该命令的结果,6,Matlab,的特点与功能,Matlab,符号计算功能,Matlab,和著名的符号计算语言,Maple,相结合,Matlab,的编程功能,Matlab,具有,程序结构控制,、,函数调用,、,数据结构,、,输入输出,、,面向对象,等程序语言特征,而且,简单易学,、,编程效率高,。通过,Matlab,进行编程完成特定的任务,Matlab,的绘图功能,Matlab,提供丰富的绘图命令,很方便实现数据的可视化,7,Matlab,丰富的工具箱(,toolbox),Matlab,的特点与功能,根据专门领域中的特殊需要而设计的各种可选工具箱,Matlab,的,Simulink,动态仿真集成环境,提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能,Symbolic Math,PDE,Optimization,Signal process,Image Process,Statistics,Control System,System Identification, ,8,Matlab,的基本用法,Matlab,系统的启动,使用,Windows “,开始” 菜单,运行,Matlab,系统启动程序,matlab,双击,Matlab,快捷图标,Matlab,系统的退出,在,Matlab,主窗口,File,菜单中选择,Exit,Matlab,在,Matlab,命令窗口输入,exit,或,quit,单击,Matlab,主窗口的“关闭”按钮,9,Matlab,的工作界面,命令窗口,当前工作目录,当前工作空间,输入命令的历史记录,命令,提示符,10,定义矩阵:直接输入法,矩阵用方括号 “, ,” 括起,例:,A = 1 2 3; 4 5 6; 7 8 9,矩阵同一行中的元素之间用,空格,或,逗号,分隔,矩阵行与行之间用,分号,分开,直接输入法中,分号可以用,回车,代替,例:,矩阵,Matlab,的,操作对象是,矩阵,:命令提示符,不用输入,回车,:运行所输入的命令,11,矩阵元素可以是任何数值表达式,例:,x,=,-1.3,sqrt(3),(1+2+3)*4/5,矩阵元素赋值,矩阵元素的单独赋值,例:,x(5)=abs(,x(1),),例:,x(5)=abs(,x(6),),?,Matlab,自动将向量,x,的长度扩展到 5,,并将未赋值部分置零。,12,大矩阵可以把小矩阵作为其元素,矩阵元素赋值,例:,A,=,A,;,11 12 13,在原矩阵的下方加一行,如何在原矩阵的右边添加一列?,13,单个元素的引用,例:,A(2,3),矩阵元素的引用,多个元素的引用:冒号的特殊用法,利用小括弧和元素所在的位置,(,下标,),x,(,i,),:,向量,x,中的第,i,个元素,A,(,i,j,),:,矩阵,A,中的第,i,行,第,j,列元素,a:b:c,产生一个由,等差序列,组成的向量;,a,是首项,,b,是公差,,c,确定,最后一项;若,b=1,,则,b,可以省略。,例:,x=,1:2:5,y=,1:2:6,例:,x=,2:1:5,y=,2:5,例:,x=,3:2:1,14,例:,x(1:3),A(3,1:3),矩阵元素的引用,A(,i,:,j,m,:,n,),表示由矩阵,A,的第,i,到第,j,行和第,m,到第,n,列交叉线上的元素组成的,子矩阵,。,可利用冒号提取矩阵 的整行或整列。,例:,A(1, :),A(:, 1:3),A(:, :),15,Matlab,帮助系统,联机帮助,help,显示指定命令的简短使用说明,例:,help,eig,help,help,详细使用帮助,doc,以网页形式,显示指定命令的帮助页,例:,doc,eig,其它相关命令,helpdesk,、,helpwin,16,Matlab,查找命令,lookfor,按指定的关键词查询与之相关的命令,例:,lookfor,inverse,which,显示指定函数所在的目录,例:,which,eig,其它相关命令,cd,、,dir,、,more,17,变量命名原则,Matlab,变量,以,字母开头,后面可以跟,字母、数字,和,下划线,长度,不超过,63,个字符,(6.5 版本以前为,19,个,),变量名,区分字母的 大小 写,Matlab,语句的通常形式,变量,=,表达式,表达式是用运算符将有关运算量连接起来的式子,,其结果被赋给赋值号“,=”,左边的变量,18,分号和续行符的作用,Matlab,变量,若不想在屏幕上输出结果,可以在语句最后加,分号,如果语句很长,可用,续行符,“,”,(三个点)续行,续行符,的前面最好留一个空格,例:,19,变量的查询,Matlab,变量,who,显示工作空间中的所有变量,whos,查看工作空间中变量的详细属性,20,系统预定义变量,Matlab,变量,pi,:,圆周率,,其值为,imag(log(-1),i,nf,,,Inf,:,无穷大,nan,,,NaN,:,Not-a-,Number,一个不定值,如,0/0,eps,:,浮点运算相对精度,特殊变量,ans,i,,,j,:,虚部单位,即,应尽量避免给系统预定义变量重新赋值!,21,数与算术表达式,Matlab,数值运算,Matlab,中的数默认是,双精度实数,,表示方法,同,C,语言,3, -9, 0.4, 1.603e-12, 3.23e+20,浮点运算的,相对误差为,eps,浮点数表示范围为,:,10,-308,10,308,复数的输入,z=3+4i,(4,与,i,之间不能有空格),z=3+4*i,复数作为矩阵元素输入时,加号两边不能有空格,!,22,数学运算符,+,加法,Matlab,数值运算,-,减法,*,乘法,/,和,除法(右除和左除),幂运算,命令分隔符:,逗号,和,分号,23,输出格式,Matlab,的输出,Matlab,以双精度执行所有的运算,运算结果可以,在屏幕上输出,,同时,赋给指定变量;,若无指定变量,则系统会自动将结果赋给变量 “,ans,”,Matlab,中数的输出格式可以通过,format,命令指定,format 只改变变量的输出格式,,但不会影响变量的值,!,24,各种,format,格式,格式,解释,例,format,短格式(缺省显示格式),同,short,3.1416,format short,短格式(缺省显示格式),只显示,5,位,3.1416,format long,长格式,双精度数,15,位,单精度数7位,3.14159265358979,format short e,短格式,e,方式(科学计数格式,),3.1416,e+000,format long e,长格式,e,方式,3.141592653589793,e+000,format short g,短格式,g,方式,3.1416,format long g,长格式,g,方式,3.14159265358979,format compact,压缩格式,format loose,自由格式,format + / format bank / format rat / format hex (,详情查看联机帮助),25,变量的存储,存储当前工作空间中的变量,save,将所有变量存入文件,matlab.mat,save,mydata,将所有变量存入,指定文件,mydata,.mat,存储,指定,的变量,save,mydata.mat,将所有变量存入,文件,mydata,.mat,save,文件名 变量名列表,例,:,save,mydata,A x z,变量名列表中各变量之间用,空格,分隔,26,变量的读取,将数据文件中的变量载入当前工作空间,load,mydata,载入数据文件中的所有变量,load,mydata,A x,从数据文件中提取指定变量,清除当前工作空间中的变量,clear,清除当前工作空间中的所有变量,clear,A x,清除指定的变量,27,几个小技巧,Matlab,的命令记忆功能:,上下箭头键,命令补全功能:,Tab,键,可以先输入命令的前几个字符,再按上下键缩小搜索范围,用,Esc,键,删除命令行,28,Lecture 2,MATLAB,矩阵(数值)运算,29,利用函数建立数值矩阵:,MATLAB,提供了许多生成和操作矩阵的函数,可以利用它们去建立矩阵。,例如,: reshape,函数和,diag,函数等。,reshape,函数用于建立数值矩阵。,diag,函数用于产生对角阵。,利用,M,文件建立矩阵,:,对于比较大且比较复杂的矩阵,可以为它专门建立一个,M,文件。其步骤为:,第一步:使用编辑程序输入文件内容。,第二步:把输入的内容以纯文本方式存盘,(,设文件名为,mymatrix.m,),。,第三步:在,MATLAB,命令窗口中输入,mymatrix,,,就会自动建立一个名为,AM,的矩阵,可供以后显示和调用。,建立矩阵,30,利用,M,文件建立矩阵:,对于比较大且比较复杂的矩阵,可以为它专门建立一个,M,文件。其步骤为:,第一步:使用编辑程序输入文件内容。,第二步:把输入的内容以纯文本方式存盘,(,设文件名为,mymatrix.m,),。,第三步:在,MATLAB,命令窗口中输入,mymatrix,,就会自动建立一个名为,AM,的矩阵,可供以后显示和调用。,子矩阵操作,建立矩阵,31,2,矩阵的基本运算,()矩阵转置,()矩阵加和减,()矩阵乘法,()矩阵除法,Ab=,inv(A,)*b,()矩阵的乘方,a2,32,3,矩阵的函数, help matfun,Matrix functions - numerical linear algebra.,Matrix analysis.,norm - Matrix or vector norm.,normest - Estimate the matrix 2-norm.,rank - Matrix rank.,det - Determinant.,trace - Sum of diagonal elements.,null - Null space.,orth - Orthogonalization.,rref - Reduced row echelon form.,subspace - Angle between two subspaces.,33,3,矩阵的函数,Linear equations., and / - Linear equation solution; use help slash.,inv - Matrix inverse.,rcond - LAPACK reciprocal condition estimator,cond - Condition number with respect to inversion.,condest - 1-norm condition number estimate.,normest1 - 1-norm estimate.,chol - Cholesky factorization.,cholinc - Incomplete Cholesky factorization.,lu - LU factorization.,luinc - Incomplete LU factorization.,qr - Orthogonal-triangular decomposition.,lsqnonneg - Linear least squares with nonnegativity constraints.,pinv - Pseudoinverse.,lscov - Least squares with known covariance.,34,3,矩阵的函数,Eigenvalues and singular values.,eig - Eigenvalues and eigenvectors.,svd - Singular value decomposition.,gsvd - Generalized singular value decomposition.,eigs - A few eigenvalues.,svds - A few singular values.,poly - Characteristic polynomial.,polyeig - Polynomial eigenvalue problem.,condeig - Condition number with respect to eigenvalues.,hess - Hessenberg form.,qz - QZ factorization for generalized eigenvalues.,schur - Schur decomposition.,35,3,矩阵的函数,Matrix functions.,expm - Matrix exponential.,logm - Matrix logarithm.,sqrtm - Matrix square root.,funm - Evaluate general matrix function.,Factorization utilities,qrdelete - Delete a column or row from QR factorization.,qrinsert - Insert a column or row into QR factorization.,rsf2csf - Real block diagonal form to complex diagonal form.,cdf2rdf - Complex diagonal form to real block diagonal form.,balance - Diagonal scaling to improve eigenvalue accuracy.,planerot - Givens plane rotation.,cholupdate - rank 1 update to Cholesky factorization.,qrupdate - rank 1 update to QR factorization.,36,4,建立矩阵的函数,常用函数有:,eye(size(A,),产生与,A,矩阵同阶的单位矩阵,zeros(m,n,),产生,0,矩阵,ones(m,n,),产生幺矩阵,rand (,m,n,),产生随机元素的矩阵,Size(a,),返回包含两个元素的向量。,Length(a,),返回向量的长度。,37,常见矩阵生成函数,zeros,(m,n),生成一个,m,行,n,列的零矩阵,,m=n,时可简写为,zeros(,n,),ones,(m,n),生成一个,m,行,n,列的元素全为 1 的矩阵,m,=,n,时可写为,ones(,n,),eye,(m,n),生成一个主对角线全为 1 的,m,行,n,列矩阵,m=n,时可简写为,eye(,n,),,即为,n,维单位矩阵,diag,(X,),若,X,是矩阵,则,diag(X,),为,X,的主对角线向量,若,X,是向量,,diag(X,),产生以,X,为主对角线的对角矩阵,tril,(A,),提取一个矩阵的下三角部分,triu,(A,),提取一个矩阵的上三角部分,rand,(m,n),产生 01 间均匀分布的随机矩阵,m,=,n,时简写为,rand(,n,),randn,(m,n,),产生均值为0,方差为1的标准正态分布随机矩阵,m,=,n,时简写为,randn(,n,),其它特殊矩阵生成函数:,magic,、,hilb,、,pascal,38,5,数组运算,(,1,) 数组的加和减,(,2,) 数组的乘和除,(,3,) 数组的乘方,39,6,应用举例,1,、行列式计算;,2,、求解线性方程组;,3,、解特征值问题,40,Lecture 3,MATLAB,图形与可视化(,Graphic,),41,Lecture 3,Matlab,图形可视化,基本要求,(1),掌握,图形窗口,的创建与控制,以及图形窗口的,基本操作,;,(2)熟练掌握,二维和三维绘图基本的命令,、线型控制;,(3)初步掌握用,特殊的图形,来表现特殊数据的性质,如面积图、直方 图、饼图等。,(,4,)掌握,坐标轴的控制和图形标注命令,及其用法。,42,Lecture 3,Matlab,图形可视化,A,、二维平面图形与坐标系,1.,几个基本的绘图命令,a.,线性坐标曲线,plot,函数命令,plot,是,MATLAB,二维曲线绘图中最简单、最重要、使用最广泛的一个线性绘图函数。它可以,生成线段、曲线和参数方程曲线,的函数图形。,命令格式:,plot(X,Y,),plot(x1,y1,x2,y2,):,综合调用方式,43,Lecture 3,Matlab,图形可视化,用命令,plot(x,y,),绘制函数,y=,cos(x,),在两个周期内的图形。,x=0:0.01:2*pi;,y=,cos(x,);,plot(x,y,),在同一图形窗口中,用命令,plot(x,y,),绘出正弦余弦函数的图形。,x=0:0.01:2*pi;,y=,sin(x);cos(x,);,plot(x,y),44,Lecture 3,Matlab,图形可视化,二维函数曲线专用命令,fplot,用,plot,绘图在确定自变量的取值间隔时,一般采用,平均间隔,,有时会因某处 间距太大,而,不能反映出函数的变化,情况。,fplot,是绘制函数,y=f(x),图形的专用命令,它的,数据点是自适应产生的,,对那些导数变化较大的函数,用,fplot,函数绘出的曲线比等分取点所画出的曲线,更加接近真实,。,fplot,函数命令的调用格式为:,X,Y=,fplot(fun,lims,),fun:,函数名字符串;,lims,:,定义,x,的取值区间,,lims,=,xmin,xmax,;,二维函数曲线专用命令,ezplot,45,Lecture 3,Matlab,图形可视化,2.,线型和颜色,plot,函数可以设置曲线的,线段类型、定点标记和线段颜色,。,常用的线段、颜色与定点标记参数,46,调用格式,:,plot(x,y,s),,s,为类型说明参数,是字符串。,s,字符串,可以是三种类型的,符号之一,,也可以是线型与颜色和定点标记与颜色的,组合,;,如果,没有,s,参数,,,plot,将使用,缺省设置(实线,前七种颜色顺序着色,)绘制曲线;,在当前坐标系中绘图时,每调入一次绘图函数,,MATLAB,将擦掉坐标系中已有的图形对象。可以用,hold on,命令,在一个坐标系中,增加新的图形对象,。注意,MATLAB,会根据新图形的大小,重新改变坐标系的比例。,用不同的,线型和标注,来绘制两条曲线。,t1=0:0.1:2*pi;,t2=0:0.1:6;,y1=sin(t1);,y2=sqrt(t2);,plot(t1,y1,:hb,t2,y2,-g),Lecture 3,Matlab,图形可视化,47,Lecture 3,Matlab,图形可视化,3.,图形窗口的分割,有时需要在,一个图形窗口中显示几幅图,,以便对几个函数进行直观、便捷的比较。由于每个绘图命令在绘制数据图像时都会将已有图形覆盖掉,而用,hold,命令不能实现同时显示几个不同坐标尺寸下的图形,用,figure,命令再创窗口又很难同时比较由不同的数据绘得的图像。,实现在,同一个窗口中同时显示多个图像,的命令,subplot,。,使用格式为:,subplot(m,n,i),其含义为 :把图形窗口分割为,m,行,n,列子窗口,,然后选定,第,i,个窗口为当前窗口,。,subplot,命令不仅用于,二维图形,,对,三维图形,一样适用。其本质是将,figure,窗口分为几个区域,,再在每个区域内分别绘图。,48,Lecture 3,Matlab,图形可视化,用,subplot,函数,把两种不同的图形综合在一个图形窗口中。,subplot(2,2,1),t=0.1:0.1:2*pi;,y=sin(t);,semilogx(t,y,),grid on,subplot(2,2,2),t=0:0.1:4*pi;,y=sin(t);,plot(t,y),subplot(2,2,3),x=1:0.01:5;,y=exp(x);,plotyy(x,y,x,y,semilogx,plot,),subplot(2,2,4),x=1:0.1:10;,y=,sqrt(x,);,plot(x,y,:rd),49,Lecture 3,Matlab,图形可视化,4.,坐标系的调整,实现坐标系的调整的命令是,axis,函数。,调用格式为:,axis(xmin,xmax,ymin,ymax,zmin,zmax,),坐标的最小值(,xmin,ymin,zmin,),必须小于相应的最大值(,xmax,ymax,zmax,),,否则会出错。,自动坐标系与用,axis,函数,调整后的坐标系的比较。,subplot(2,1,1),t=0:0.1:4*pi;,y=sin(t);,plot(t,y),subplot(2,1,2),t=0:0.1:4*pi;,y=sin(t);,plot(t,y),axis(0,max(t),min(y),max(y),50,Lecture 3,Matlab,图形可视化,B,、三维绘图,1.,三维,曲线,绘图命令,三维函数,plot3,主要用来表现,单参数的三维曲线,,与二维绘图函数,plot,相比,只多了,第三维数据,。,其调用格式为:,plot3(X1,Y1,Z1,s1,X2,Y2,Z2,s2,),参数的含义如下:,Xn、Yn、Zn,:,第一到三维数据,是,尺寸相等的,向量/矩阵;,s、s1、s2:,是,字符串,,用来设置,线型、颜色、数据点,标记。,51,Lecture 3,Matlab,图形可视化,x、y、z,是向量时,,plot3,命令的使用,t=0:0.1:8*pi;,plot3(sin(t),cos(t),t),title(,绘制螺旋线),%用命令,title,对图形主题进行标注,xlabel(sin(t),FontWeight,bold,FontAngle,italic,),ylabel(cos(t),FontWeight,bold,FontAngle,italic,),zlabel(t,FontWeight,bold,FontAngle,italic,),%,命令,zlabel,用来指定,z,轴的数据名称,grid on,x、y、z,都是矩阵时,,plot3,命令的使用,X,Y=meshgrid(-pi:0.1:pi);,Z=,sin(X)+cos(Y,);,plot3(X,Y,Z),52,Lecture 3,Matlab,图形可视化,2.三维曲面绘图命令,为了绘制定义在平面区域,D =x0,xm,y0,yn ,上的,三维曲面,z=f(x,y,),,首先将,x0,xm,在,x,方向分成,m,份,将,y0,yn,在,y,方向分成,n,份,由各划点分别作平行于坐标轴的直线,将,区域,D,分成,m,n,个小矩形,;对于每个小矩形,计算出,网格点的函数值,,决定出空间中四个顶点(,xi,yi,f(xi,yi,),),,连接四个顶点得到一个,空间的四边形片,;所有四边形片连在一起构成函数,z=f(x,y),定义在区域,D,上的,空间网格曲面,。,因此,三维曲面绘图命令可分为,平面网格点的生成,、在平面网格基础上,绘制三维网格,及对,三维表面进行处理,三个步骤。,53,a.,平面网格点的生成,函数命令,meshgrid,用来生成,x-y,平面上的网格点矩阵。,调用形式为:,X,Y=,meshgrid(x,y,),X,Y=,meshgrid(x,),等价于,X,Y=,meshgrid(x,x,),参数含义如下:,x:,是区间,x0,xm,上分划的向量;,y:,是区间,y0,yn,上分划的向量;,X,Y:,输出变量矩阵,矩阵,X,的行向量都是向量,x,,,矩阵,Y,的列向量都是向量,y,。,函数,meshgrid,将,由两个向量决定的区域转换为对应的网格点矩阵。,Lecture 3,Matlab,图形可视化,54,Lecture 3,Matlab,图形可视化,函数 ,定义区域为-2,2-2,2。,生成网格并,计算其网格点上的函数值。,X,Y = meshgrid(-2:2:2, -2:2:2);,X,Y,%,将划分结果输出至矩阵,ans,=,-2 0 2 -2 -2 -2,-2 0 2 0 0 0,-2 0 2 2 2 2,Z = X .* exp(-X.2 - Y.2);,%,计算网格点上的函数值赋予变量,Z,Z =,-0.0007 0 0.0007,-0.0366 0 0.0366,-0.0007 0 0.0007,55,Lecture 3,Matlab,图形可视化,b.,三维网格命令,mesh,利用,函数,mesh,生成网格曲面。,调用格式为:,mesh(X,Y,Z,C),:X、Y、Z、C,是同维数的矩阵,,X、Y、Z,对应空间上的网格点,网格线颜色由,C,决定;,mesh(X,Y,Z):,相当于上面的,C=Z,的情况;,mesh(x,y,Z,C),:x,和,y,是向量,,Z,和,C,是同维数的矩阵,网格曲面的网格顶点是(,x(j),y(i),Z(i,j)),,网格线的颜色由矩阵,C,决定;,mesh(x,y,Z):,相当于上面的,C=Z,的情况;,mesh(Z,C),:,等价于,mesh(x,y,Z,C),,此时向量,x=1:n,,向量,y=1:m;,mesh(Z):,相当于上面的,C=Z,的情况,mesh(.,PropertyName,PropertyValue,.),:,给函,mesh,设置曲面属性。,56,Lecture 3,Matlab,图形可视化,用,mesh,命令绘制上例中的网格曲面。,X,Y = meshgrid(-2:.2:2, -2:.2:2);,Z = X .* exp(-X.2 - Y.2);,mesh(Z),与,mesh,相关的另外两个函数是,meshc,和,meshz,,,它们的调用形式与,mesh,相同。,57,Lecture 3,Matlab,图形可视化,c.,三维表面命令,surf,函数,surf,可实现,对网格曲面片进行着色,,将网格曲面转化为,实曲面,。,surf,命令的调用格式与,mesh,相同,。,利用三维网格表面命令,surf,绘制图形。,z=peaks;,%,绘制山峰的图像,将函数值赋予变量,z,surf(z),%,对山峰的图像进行着色处理,shading,interp,%,函数,shading,改变着色方式,58,Lecture 3,Matlab,图形可视化,3.,等高线图形的绘制,4.三维视图可视效果的控制,5.柱面和球面的三维表达,(,书,),59,Lecture 3,Matlab,图形可视化,a.,柱面的表达,cylinder,cylinder,命令中,,柱面的轴线定义为,z,轴,,只要给出,母线,的描述就可完成一个柱面。,调用格式为:,X,Y,Z = cylinder(R,N),;,X,Y,Z = cylinder(R),:,缺省值,N=20,;,X,Y,Z = cylinder,:,缺省值,N=20,R=1,1。,R,:,是一描述柱面母线的向量;,N,:,是旋转柱面上的分割线条数;,X,Y,Z,:,是返回的,x,y,z,坐标向量。,绘制一个柱面。,t=pi:0.01:3*pi;,r=sin(t)+t;,cylinder(r,30),shading,interp,60,Lecture 3,Matlab,图形可视化,b.,球面的表达,sphere,调用格式为:,X,Y,Z=sphere(N),:,产生一个(,N+1)( N+1),的矩阵,然后用函数,surf,命令绘制一个,单位的球面,,N,为设置分割线的条数,;,X,Y,Z = sphere,:,缺省,值,N = 20,。,画一个球面。,X,Y,Z=sphere;,surf(X,Y,Z),61,Lecture 3,Matlab,图形可视化,四、特殊图形绘制,为了将抽象的数据表达得更形象,除了绘制,二维、三维,图形外,还要用到,直方图、面积图、饼图,等特殊图形。,特殊图形指令,62,Lecture 3,Matlab,图形可视化,1.面积图命令,area,表现各个不同部分对整体所作的贡献,area(X,Y):,与,plot,的命令的使用方法相似,,将连线图到,x,轴,的那部分填上了颜色;,area(Y):,缺省值,X=1:SIZE(Y);,area(X,Y,LEVEL,),或,area(Y,LEVEL,),:,填色部分为,由连线图到,y=level,的水平线,之间的部分。,绘制一面积图,X=-2:2;,Y=3,5,2,4,1;5,4,2,3,5;3,4,5,2,1;,area(X,Y),legend(,因素 1,因素 2,因素 3),grid on,63,Lecture 3,Matlab,图形可视化,2.直方图命令,bar,直方图常用于统计数据的作图, 有,bar,、,bar3,、,barh,和,bar3h,几种函数,其调用格式类似。,以函数,bar,为例:,bar(X,Y),:X,是横坐标向量,,Y,可以是向量或矩阵,。,Y,是,向量,时,每一个元素对应一个竖条;,Y,是,m,行,n,列,矩阵,时,将画出,m,组竖条,每组包括,n,个竖条;,bar(Y),:,横坐标使用缺省值,X=1:M,;,bar(X,Y,WIDTH),或,bar(Y,WIDTH),:,用,WIDTH,指定,竖条的宽度,,如果,WIDTH1,,条与条之间将重合。,缺省宽度为 0.8,;,bar(.,grouped):,产生缺省的,组合,直方图;,bar(.,stacked):,产生,累积的,直方图;,bar(.,linespec,):,指定,条的颜色,;,H = bar(.),:,返回条形图对象的,句柄,。,64,Lecture 3,Matlab,图形可视化,用绘制直方图的几种命令绘制直方图。,X=-2:2;,Y=3,5,2,4,1;5,4,2,3,5;3,4,5,2,1;,subplot(2,2,1),bar(X,Y,r),xlabel(x,),ylabel(y,),colormap(cool,),subplot(2,2,2),barh(X,Y,grouped,),xlabel(y,),ylabel(x,),colormap(cool,),subplot(2,2,3),bar(X,Y,stacked),xlabel(x,),ylabel,(Sigma y),colormap(summer,),subplot(2,2,4),barh(X,Y,stacked,),xlabel(y);ylabel,(Sigma x),colormap(summer,),65,Lecture 3,Matlab,图形可视化,绘制三维直方图。,X=-2:2;,Y=3,5,2,4,1;5,4,2,3,5;3,4,5,2,1;,subplot(2,2,1),bar3(X,Y,r),zlabel(y,),ylabel(x,),colormap(cool,),subplot(2,2,2),bar3h(X,Y,grouped),ylabel(x,),zlabel(y,),colormap(cool,),subplot(2,2,3),bar3(X,Y,stacked),ylabel(x,),zlabel,(Sigma y),colormap(summer,),subplot(2,2,4),bar3h(X,Y,stacked),zlabel(x,),ylabel,(Sigma y),colormap(summer,),66,Lecture 3,Matlab,图形可视化,3.饼图命令,pie,饼图又叫,扇形图,,用于,显示向量中元素所占向量元素总和的百分比,。,pie,和,pie3,分别用于绘制二维和三维饼图。,调用格式:,pie(X),:,向量,X,的饼图。把,X,的每一个元素在所有元素总和中占的比例表达出来;,pie(X,EXPLODE),:,向量,EXPLODE,(,和向量,X,长度相等)用于指定饼图中,抽出一部分的块,(,非零值对应的块,);,pie(.,LABELS),:LABELS,是用于,标注,饼图的字符串数组,其长度必须和向量,X,相等;,H = pie(.),:,返回包括,饼图,和文本对象,句柄,。,67,用函数,pie,和,pie3,绘制饼图。,x=200,360,120,400,320;,subplot(2,2,1),pie(x,0 0 0 1 0),subplot(2,2,2),pie3(x,0 0 0 1 0),subplot(2,2,3),pie(x(2:5),subplot(2,2,4),x=0.1,0.12,0.21,0.34,0.11;,pie3(x ,A,B,C,D,E),Lecture 3,Matlab,图形可视化,68,Lecture 3,Matlab,图形可视化,五、极坐标、柱坐标和球坐标系下绘制图形,1.极坐标系下绘制图形,ploar,是直接在极坐标系下绘图的命令,调用格式为:,ploar(THETA, RHO,S),其中,S,是字符串,用来控制图形的线型。,绘制半径为,2,的渐开线。,rhe,=2;,theta=0:pi/20:4*pi;,rho=,rhe+theta,*,rhe,;,polar(theta,rho,r,),69,Lecture 3,Matlab,图形可视化,六、坐标轴的调整和图形的标注,1.坐标轴,调整,命令,70,Lecture 3,Matlab,图形可视化,2.图形标注,坐标轴和图形标题标注,标注,坐标轴,x,、,y,和,z,的命令函数为,xlabel,、,ylabel,和,zlabel,,,调用格式为:,xlabel(text,),xlabel(text,Property1,PropertyValue1,Property2,PropertyValue2,.),H =,xlabel,(.),返回坐标轴标注的,句柄。,其中,,text,是要添加的标注文本。,Property,是文本的属性名,,PropertyValue,是属性值(所用字体、大小、标注角度等)。,图形加,标题,的函数为,title,,其调用格式与坐标轴标注类似。,71,Lecture 3,Matlab,图形可视化,b.,图例的标注,legend,命令,实现不同图例的说明。其调用格式为:,legend(string1,string2,string3, .),legend(string1,string2,string3,.,Pos),按顺序,把,字符串,添加到相应的曲线,线型符号,之后;,Pos,对图例的位置作出设置和调整:,0 = 自动把图例置于,最佳位置,( 和图中曲线重复最少);,1 = 置于图形窗口的,右上角,( 缺省值);,2 = 置于图形窗口的,左上角,;,3 = 置于图形窗口的,左下角,;,4 = 置于图形窗口的,右下角,;,-1 =,置于图形窗口的,右侧(,外部,)。,72,3. 控制分格线,对二维和三维图形都适用。,有三种用法:,grid on,:,打开,分格线控制开关,以后绘制的图形都带有分格线;,grid off,:,关闭,分格线控制开关,以后绘制的图形都不带分格线;,grid,:,用于,实现分格线绘制切换,。,Lecture 3,Matlab,图形可视化,73,Lecture 3,Matlab,图形可视化,绘制图形,并用函数,xlabel、title,和,legend,命令进行标注。,t=0:0.1:4*pi; y=sin(t); y1=,cos(t,); plot(t,y,:,t,y1,r*),xlabel(x,轴 (0-4,pi),fontsize,12,fontweight,bold),ylabel(y,轴,fontsize,12,fontweight,bold),title(,绘制正弦波和余弦波,Pos=1,fontsize,10,fontweight,bold,fontangle,italic),text(pi,0,leftarrowsin(pi)=0),text(pi,-1,leftarrowcos(pi)=-1),text(pi/2,0.9,uparrowsin(pi/2)=,num2str(sin(pi/2),text(0,-0.6,绘图日期:,date),text(0,-0.8,MATLAB,版本:,version),legend(,正弦波,余弦波),figure(2),plot(t,y,:,t,y1,r*),title(,绘制正弦波和余弦波,Pos=0,fontsize,10,fontweight,bold,fontangle,italic),legend(,正弦波,余弦波,0),grid on,figure(3),plot(t,y,:,t,y1,r*),title(,绘制正弦波和余弦波,Pos=-1,fontsize,10,fontweight,bold,fontangle,italic),74,Lecture 3,Matlab,图形可视化,text(7*pi/2,0,rightarrowcos(pi*7/2)=0),legend(,正弦波,余弦波,-1),grid off,75,Lecture 4,MATLAB,符号运算(,Symbolic,),76,MATLAB,Matlab,符号运算,77,Matlab,符号运算介绍,Matlab,符号运算是通过,符号数学工具箱,(,Symbolic Math Toolbox),来实现的。,Matlab,符号数学工具箱是建立在功能强大的,Maple,软件的基础上的,当,Matlab,进行符号运算时,它就请求,Maple,软件去计算并将结果返回给,Matlab,。,Matlab,的符号数学工具箱可以完成几乎所有得符号运算功能。主要包括:,符号表达式的运算,,,符号表达式的复合,、,化简,,,符号矩阵的运算,,,符号微积分,、,符号作图,,,符号代数方程求解,,,符号微分方程求解,等。此外,该工具箱还支持,可变精度运算,,即支持以指定的精度返回结果。,78,Matlab,符号运算特点,计算以,推理方式,进行,因此不受计算误差累积所带来的困扰。,符号计算指令的调用比较简单,与数学教科书上的公式相近。,符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭解不存在时)。,符号计算所需的运行时间相对较长。,79,Matlab,符号运算举例,求一元二次方程,ax,2,+,bx,+,c,= 0,的根,solve,(,a,*x2+b*,x+c,=0,),求的根,f,(,x,) = (,cos,x,),2,的一次导数,x=,sym,(,x,);,diff,(cos(x)2),计算,f,(,x,) =,x,2,在区间,a,b,上的定积分,syms,a b x;,int,(x2,a,b),80,在进行符号运算时,必须先定义基本的,符号对象,,可以是符号常量、符号变量、符号表达式等。符号对象是一种数据结构。,符号对象与符号表达式,含有符号对象的表达式称为,符号表达式,,,Matlab,在内部把符号表达式表示成字符串,以与数字变量或运算相区别。,符号矩阵,/,数组:元素为符号表达式的矩阵,/,数组。,81,sym,函数用来建立,单个,符号变量,一般调用格式为:,符号对象的建立:,sym,和,syms,符号对象的建立,例
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!