首页 MATLAB经典教程(全)

MATLAB经典教程(全)

举报
开通vip

MATLAB经典教程(全)MATLAB1MATLAB简介Matlab简介在欧美各高等院校,Matlab已经成为线性代数、数值分析、数理统计、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,已成为大学生必须掌握的基本技能之一。Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年推向市场以来,历经二十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。Matlab简介Matlab:MatrixLabor...

MATLAB经典教程(全)
MATLAB1MATLAB简介Matlab简介在欧美各高等院校,Matlab已经成为线性代数、数值 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 、数理统计、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,已成为大学生必须掌握的基本技能之一。Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年推向市场以来,历经二十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。Matlab简介Matlab:MatrixLaboratory矩阵实验室Matlab的发展1980年,Moler教授用Fortran语言编写了集命令 翻译 阿房宫赋翻译下载德汉翻译pdf阿房宫赋翻译下载阿房宫赋翻译下载翻译理论.doc 、科学计算于一身的一套交互式软件系统。1984年,Moler等成立了TheMathWorks的公司,用C语言完全改写Matlab,并推出第一个商业版。增添图形图像处理、符号运算、以及与其他流行软件的接口功能,使得Matlab的功能越来越强大。到九十年代,在国际上30几个数学类科技应用软件中,Matlab在数值计算方面独占鳌头。目前,Matlab已成为世界顶尖的数学应用软件,以其强大的工程计算、算法研究、工程绘图、应用程序开发、数据分析和动态仿真等功能,在航空航天、机械制造和工程建筑等领域发挥着越来越重要的作用。就影响而言,至今仍然没有一个别的计算软件可与Matlab匹敌。Matlab的发行1984年,Matlab1.0(DOS版,182K,20多个函数)1992年,Matlab4.0(93年推出Windows版,加入simulink)1994年,Matlab4.2(得到广泛重视和应用)1999年,Matlab5.3(真正实现32位运算)2002年,Matlab6.5(采用JIT加速器)2004年,Matlab7.0自2006年起,Matlab每年更新两次Matlab简介购买(下载)Matlab软件Matlab的安装插入光盘,自动运行;或点击安装程序setup.exe必须安装的部件MatlabSymbolicMathToolboxExtendedSymbolicMath这里以Matlab7.0.4为例自R2008a开始增加了激活要求Matlab的特点与功能Matlab具有很强的数值计算功能Matlab以矩阵作为数据操作的基本单位,但无需预先指定矩阵维数(动态定维)按照IEEE的数值计算 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 进行计算提供十分丰富的数值计算函数,方便计算,提高效率Matlab命令与数学中的符号、公式非常接近,可读性强,容易掌握Matlab是一个交互式软件系统输入一条命令,立即就可以得出该命令的结果Matlab的特点与功能Matlab符号计算功能Matlab和著名的符号计算语言Maple相结合Matlab的编程功能Matlab具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。通过Matlab进行编程完成特定的任务Matlab的绘图功能Matlab提供丰富的绘图命令,很方便实现数据的可视化Matlab丰富的工具箱(toolbox)Matlab的特点与功能根据专门领域中的特殊需要而 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 的各种可选工具箱Matlab的Simulink动态仿真集成环境提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能SymbolicMathPDEOptimizationSignalprocessImageProcessStatisticsControlSystemSystemIdentification……Matlab的基本用法Matlab系统的启动使用Windows“开始”菜单运行Matlab系统启动程序matlab双击Matlab快捷图标Matlab系统的退出在Matlab主窗口File菜单中选择ExitMatlab在Matlab命令窗口输入exit或quit单击Matlab主窗口的“关闭”按钮Matlab的工作界面命令窗口当前工作目录当前工作空间输入命令的历史记录命令提示符定义矩阵:直接输入法矩阵用方括号“[]”括起例:>>A=[123;456;789]矩阵同一行中的元素之间用空格或逗号分隔矩阵行与行之间用分号分开直接输入法中,分号可以用回车代替例:矩阵Matlab的操作对象是矩阵>>:命令提示符,不用输入回车:运行所输入的命令矩阵元素可以是任何数值表达式例:>>x=[-1.3,sqrt(3),(1+2+3)*4/5]矩阵元素赋值矩阵元素的单独赋值例:>>x(5)=abs(x(1))例:>>x(5)=abs(x(6))??Matlab自动将向量x的长度扩展到5,并将未赋值部分置零。大矩阵可以把小矩阵作为其元素矩阵元素赋值例:>>A=[A;111213]在原矩阵的下方加一行如何在原矩阵的右边添加一列?单个元素的引用例:>>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例:>>x(1:3)>>A(3,1:3)矩阵元素的引用A(i:j,m:n)表示由矩阵A的第i到第j行和第m到第n列交叉线上的元素组成的子矩阵。可利用冒号提取矩阵的整行或整列。例:>>A(1,:)>>A(:,1:3)>>A(:,:)Matlab帮助系统联机帮助help显示指定命令的简短使用说明例:>>helpeig>>helphelp详细使用帮助doc以网页形式显示指定命令的帮助页例:>>doceig其它相关命令helpdesk、helpwinMatlab查找命令lookfor按指定的关键词查询与之相关的命令例:>>lookforinversewhich显示指定函数所在的目录例:>>whicheig其它相关命令cd、dir、more变量命名原则Matlab变量以字母开头后面可以跟字母、数字和下划线长度不超过63个字符(6.5版本以前为19个)变量名区分字母的大小写Matlab语句的通常形式变量=表达式表达式是用运算符将有关运算量连接起来的式子,其结果被赋给赋值号“=”左边的变量分号和续行符的作用Matlab变量若不想在屏幕上输出结果,可以在语句最后加分号如果语句很长,可用续行符“…”(三个点)续行续行符的前面最好留一个空格例:变量的查询Matlab变量who显示工作空间中的所有变量whos查看工作空间中变量的详细属性系统预定义变量Matlab变量pi:圆周率,其值为imag(log(-1))inf,Inf:无穷大nan,NaN:Not-a-Number,一个不定值,如0/0eps:浮点运算相对精度特殊变量ansi,j:虚部单位,即应尽量避免给系统预定义变量重新赋值!数与算术表达式Matlab数值运算Matlab中的数默认是双精度实数,表示方法同C语言3,-9,0.4,1.603e-12,3.23e+20浮点运算的相对误差为eps浮点数表示范围为:10-308~10308复数的输入z=3+4i(4与i之间不能有空格)z=3+4*i复数作为矩阵元素输入时,加号两边不能有空格!数学运算符+加法Matlab数值运算-减法*乘法/和\除法(右除和左除)^幂运算命令分隔符:逗号和分号输出格式Matlab的输出Matlab以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量“ans”Matlab中数的输出格式可以通过format命令指定format只改变变量的输出格式,但不会影响变量的值!各种format格式3.141592653589793e+000自由格式formatloose3.1416短格式(缺省显示格式),同shortformat例解释格式format+/formatbank/formatrat/formathex(详情查看联机帮助)压缩格式formatcompact3.14159265358979长格式g方式formatlongg3.1416短格式g方式formatshortg长格式e方式formatlonge3.1416e+000短格式e方式(科学计数格式)formatshorte3.14159265358979长格式,双精度数15位,单精度数7位formatlong3.1416短格式(缺省显示格式),只显示5位formatshort变量的存储存储当前工作空间中的变量save将所有变量存入文件matlab.matsavemydata将所有变量存入指定文件mydata.mat存储指定的变量savemydata.mat将所有变量存入文件mydata.matsave文件名变量名列表例:>>savemydataAxz变量名列表中各变量之间用空格分隔变量的读取将数据文件中的变量载入当前工作空间loadmydata载入数据文件中的所有变量loadmydataAx从数据文件中提取指定变量清除当前工作空间中的变量clear清除当前工作空间中的所有变量clearAx清除指定的变量几个小技巧Matlab的命令记忆功能:上下箭头键命令补全功能:Tab键可以先输入命令的前几个字符,再按上下键缩小搜索范围用Esc键删除命令行Lecture2MATLAB矩阵(数值)运算利用函数建立数值矩阵:MATLAB提供了许多生成和操作矩阵的函数,可以利用它们去建立矩阵。例如:reshape函数和diag函数等。reshape函数用于建立数值矩阵。diag函数用于产生对角阵。利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。其步骤为:第一步:使用编辑程序输入文件内容。第二步:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。1.建立矩阵利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。其步骤为:第一步:使用编辑程序输入文件内容。第二步:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。子矩阵操作1.建立矩阵2.矩阵的基本运算(1)矩阵转置(2)矩阵加和减(3)矩阵乘法(4)矩阵除法A\b=inv(A)*b(5)矩阵的乘方a^23.矩阵的函数>>helpmatfunMatrixfunctions-numericallinearalgebra.Matrixanalysis.norm-Matrixorvectornorm.normest-Estimatethematrix2-norm.rank-Matrixrank.det-Determinant.trace-Sumofdiagonalelements.null-Nullspace.orth-Orthogonalization.rref-Reducedrowechelonform.subspace-Anglebetweentwosubspaces.3.矩阵的函数Linearequations.\and/-Linearequationsolution;use"helpslash".inv-Matrixinverse.rcond-LAPACKreciprocalconditionestimatorcond-Conditionnumberwithrespecttoinversion.condest-1-normconditionnumberestimate.normest1-1-normestimate.chol-Choleskyfactorization.cholinc-IncompleteCholeskyfactorization.lu-LUfactorization.luinc-IncompleteLUfactorization.qr-Orthogonal-triangulardecomposition.lsqnonneg-Linearleastsquareswithnonnegativityconstraints.pinv-Pseudoinverse.lscov-Leastsquareswithknowncovariance.3.矩阵的函数Eigenvaluesandsingularvalues.eig-Eigenvaluesandeigenvectors.svd-Singularvaluedecomposition.gsvd-Generalizedsingularvaluedecomposition.eigs-Afeweigenvalues.svds-Afewsingularvalues.poly-Characteristicpolynomial.polyeig-Polynomialeigenvalueproblem.condeig-Conditionnumberwithrespecttoeigenvalues.hess-Hessenbergform.qz-QZfactorizationforgeneralizedeigenvalues.schur-Schurdecomposition.3.矩阵的函数Matrixfunctions.expm-Matrixexponential.logm-Matrixlogarithm.sqrtm-Matrixsquareroot.funm-Evaluategeneralmatrixfunction.Factorizationutilitiesqrdelete-DeleteacolumnorrowfromQRfactorization.qrinsert-InsertacolumnorrowintoQRfactorization.rsf2csf-Realblockdiagonalformtocomplexdiagonalform.cdf2rdf-Complexdiagonalformtorealblockdiagonalform.balance-Diagonalscalingtoimproveeigenvalueaccuracy.planerot-Givensplanerotation.cholupdate-rank1updatetoCholeskyfactorization.qrupdate-rank1updatetoQRfactorization.4.建立矩阵的函数常用函数有:eye(size(A))产生与A矩阵同阶的单位矩阵zeros(m,n)产生0矩阵ones(m,n)产生幺矩阵rand(m,n)产生随机元素的矩阵Size(a)返回包含两个元素的向量。Length(a)返回向量的长度。常见矩阵生成函数其它特殊矩阵生成函数:magic、hilb、pascal产生0~1间均匀分布的随机矩阵m=n时简写为rand(n)rand(m,n)产生均值为0,方差为1的标准正态分布随机矩阵m=n时简写为randn(n)randn(m,n)提取一个矩阵的上三角部分triu(A)提取一个矩阵的下三角部分tril(A)若X是矩阵,则diag(X)为X的主对角线向量若X是向量,diag(X)产生以X为主对角线的对角矩阵diag(X)生成一个主对角线全为1的m行n列矩阵,m=n时可简写为eye(n),即为n维单位矩阵eye(m,n)生成一个m行n列的元素全为1的矩阵,m=n时可写为ones(n)ones(m,n)生成一个m行n列的零矩阵,m=n时可简写为zeros(n)zeros(m,n)5.数组运算(1)数组的加和减(2)数组的乘和除(3)数组的乘方6应用举例1、行列式计算;2、求解线性方程组;3、解特征值问题Lecture3MATLAB图形与可视化(Graphic)Lecture3Matlab图形可视化基本要求(1)掌握图形窗口的创建与控制,以及图形窗口的基本操作;(2)熟练掌握二维和三维绘图基本的命令、线型控制;(3)初步掌握用特殊的图形来表现特殊数据的性质,如面积图、直方图、饼图等。(4)掌握坐标轴的控制和图形标注命令及其用法。Lecture3Matlab图形可视化A、二维平面图形与坐标系1.几个基本的绘图命令a.线性坐标曲线plot函数命令plot是MATLAB二维曲线绘图中最简单、最重要、使用最广泛的一个线性绘图函数。它可以生成线段、曲线和参数方程曲线的函数图形。命令格式:plot(X,Y)plot(x1,y1,x2,y2,…):综合调用方式Lecture3Matlab图形可视化用命令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)Lecture3Matlab图形可视化二维函数曲线专用命令fplot用plot绘图在确定自变量的取值间隔时,一般采用平均间隔,有时会因某处间距太大,而不能反映出函数的变化情况。fplot是绘制函数y=f(x)图形的专用命令,它的数据点是自适应产生的,对那些导数变化较大的函数,用fplot函数绘出的曲线比等分取点所画出的曲线更加接近真实。fplot函数命令的调用格式为:[X,Y]=fplot(‘fun’,lims)fun:函数名字符串;lims:定义x的取值区间,lims=[xmin,xmax];二维函数曲线专用命令ezplotLecture3Matlab图形可视化2.线型和颜色plot函数可以设置曲线的线段类型、定点标记和线段颜色。常用的线段、颜色与定点标记参数调用格式:plot(x,y,s),s为类型说明参数,是字符串。s字符串可以是三种类型的符号之一,也可以是线型与颜色和定点标记与颜色的组合;如果没有s参数,plot将使用缺省设置(实线,前七种颜色顺序着色)绘制曲线;在当前坐标系中绘图时,每调入一次绘图函数,MATLAB将擦掉坐标系中已有的图形对象。可以用holdon命令在一个坐标系中增加新的图形对象。注意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')Lecture3Matlab图形可视化Lecture3Matlab图形可视化3.图形窗口的分割有时需要在一个图形窗口中显示几幅图,以便对几个函数进行直观、便捷的比较。由于每个绘图命令在绘制数据图像时都会将已有图形覆盖掉,而用hold命令不能实现同时显示几个不同坐标尺寸下的图形,用figure命令再创窗口又很难同时比较由不同的数据绘得的图像。实现在同一个窗口中同时显示多个图像的命令subplot。使用格式为:subplot(m,n,i)其含义为:把图形窗口分割为m行n列子窗口,然后选定第i个窗口为当前窗口。subplot命令不仅用于二维图形,对三维图形一样适用。其本质是将figure窗口分为几个区域,再在每个区域内分别绘图。Lecture3Matlab图形可视化用subplot函数把两种不同的图形综合在一个图形窗口中。subplot(2,2,1)t=0.1:0.1:2*pi;y=sin(t);semilogx(t,y)gridonsubplot(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’)Lecture3Matlab图形可视化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)])Lecture3Matlab图形可视化B、三维绘图1.三维曲线绘图命令三维函数plot3主要用来表现单参数的三维曲线,与二维绘图函数plot相比,只多了第三维数据。其调用格式为:plot3(X1,Y1,Z1,s1,X2,Y2,Z2,s2,…)参数的含义如下:Xn、Yn、Zn:第一到三维数据,是尺寸相等的向量/矩阵;s、s1、s2:是字符串,用来设置线型、颜色、数据点标记。Lecture3Matlab图形可视化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轴的数据名称gridonx、y、z都是矩阵时,plot3命令的使用[X,Y]=meshgrid(-pi:0.1:pi);Z=sin(X)+cos(Y);plot3(X,Y,Z)Lecture3Matlab图形可视化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上的空间网格曲面。因此,三维曲面绘图命令可分为平面网格点的生成、在平面网格基础上绘制三维网格及对三维表面进行处理三个步骤。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将由两个向量决定的区域转换为对应的网格点矩阵。Lecture3Matlab图形可视化Lecture3Matlab图形可视化函数,定义区域为[-2,2]×[-2,2]。生成网格并计算其网格点上的函数值。[X,Y]=meshgrid(-2:2:2,-2:2:2);[X,Y]%将划分结果输出至矩阵ans=-202-2-2-2-202000-202222Z=X.*exp(-X.^2-Y.^2);%计算网格点上的函数值赋予变量ZZ=-0.000700.0007-0.036600.0366-0.000700.0007Lecture3Matlab图形可视化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设置曲面属性。Lecture3Matlab图形可视化用mesh命令绘制上例中的网格曲面。[X,Y]=meshgrid(-2:.2:2,-2:.2:2);Z=X.*exp(-X.^2-Y.^2);mesh(Z)与mesh相关的另外两个函数是meshc和meshz,它们的调用形式与mesh相同。Lecture3Matlab图形可视化c.三维表面命令surf函数surf可实现对网格曲面片进行着色,将网格曲面转化为实曲面。surf命令的调用格式与mesh相同。利用三维网格表面命令surf绘制图形。z=peaks;%绘制山峰的图像,将函数值赋予变量zsurf(z)%对山峰的图像进行着色处理shadinginterp%函数shading改变着色方式Lecture3Matlab图形可视化3.等高线图形的绘制4.三维视图可视效果的控制5.柱面和球面的三维表达(<高数>书)Lecture3Matlab图形可视化a.柱面的表达cylindercylinder命令中,柱面的轴线定义为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)shadinginterpLecture3Matlab图形可视化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)Lecture3Matlab图形可视化四、特殊图形绘制为了将抽象的数据表达得更形象,除了绘制二维、三维图形外,还要用到直方图、面积图、饼图等特殊图形。特殊图形指令Lecture3Matlab图形可视化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')gridonLecture3Matlab图形可视化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指定竖条的宽度,如果WIDTH>1,条与条之间将重合。缺省宽度为0.8;bar(...,’grouped’):产生缺省的组合直方图;bar(...,’stacked’):产生累积的直方图;bar(...,linespec):指定条的颜色;H=bar(...):返回条形图对象的句柄。Lecture3Matlab图形可视化用绘制直方图的几种命令绘制直方图。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('\Sigmay')colormap(summer)subplot(2,2,4)barh(X,Y','stacked')xlabel('y');ylabel('\Sigmax')colormap(summer)Lecture3Matlab图形可视化绘制三维直方图。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('\Sigmay')colormap(summer)subplot(2,2,4)bar3h(X,Y’,’stacked’)zlabel(’x’)ylabel(’\Sigmay’)colormap(summer)Lecture3Matlab图形可视化3.饼图命令pie饼图又叫扇形图,用于显示向量中元素所占向量元素总和的百分比。pie和pie3分别用于绘制二维和三维饼图。调用格式:pie(X):向量X的饼图。把X的每一个元素在所有元素总和中占的比例表达出来;pie(X,EXPLODE):向量EXPLODE(和向量X长度相等)用于指定饼图中抽出一部分的块(非零值对应的块);pie(...,LABELS):LABELS是用于标注饼图的字符串数组,其长度必须和向量X相等;H=pie(...):返回包括饼图和文本对象句柄。用函数pie和pie3绘制饼图。x=[200,360,120,400,320];subplot(2,2,1),pie(x,[00010])subplot(2,2,2),pie3(x,[00010])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'})Lecture3Matlab图形可视化Lecture3Matlab图形可视化五、极坐标、柱坐标和球坐标系下绘制图形1.极坐标系下绘制图形ploar是直接在极坐标系下绘图的命令调用格式为:ploar(THETA,RHO,S)其中S是字符串,用来控制图形的线型。绘制半径为2的渐开线。rhe=2;theta=0:pi/20:4*pi;rho=rhe+theta*rhe;polar(theta,rho,'r')Lecture3Matlab图形可视化六、坐标轴的调整和图形的标注1.坐标轴调整命令Lecture3Matlab图形可视化2.图形标注坐标轴和图形标题标注标注坐标轴x、y和z的命令函数为xlabel、ylabel和zlabel,调用格式为:xlabel(’text’)xlabel(’text’,’Property1’,PropertyValue1,’Property2’,PropertyValue2,...)H=xlabel(...)返回坐标轴标注的句柄。其中,’text’是要添加的标注文本。’Property’是文本的属性名,’PropertyValue’是属性值(所用字体、大小、标注角度等)。图形加标题的函数为title,其调用格式与坐标轴标注类似。Lecture3Matlab图形可视化b.图例的标注legend命令实现不同图例的说明。其调用格式为:legend(string1,string2,string3,...)legend(string1,string2,string3,...,Pos)按顺序把字符串添加到相应的曲线线型符号之后;Pos对图例的位置作出设置和调整:0=自动把图例置于最佳位置(和图中曲线重复最少);1=置于图形窗口的右上角(缺省值);2=置于图形窗口的左上角;3=置于图形窗口的左下角;4=置于图形窗口的右下角;-1=置于图形窗口的右侧(外部)。3.控制分格线对二维和三维图形都适用。有三种用法:gridon:打开分格线控制开关,以后绘制的图形都带有分格线;gridoff:关闭分格线控制开关,以后绘制的图形都不带分格线;grid:用于实现分格线绘制切换。Lecture3Matlab图形可视化Lecture3Matlab图形可视化绘制图形,并用函数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)gridonfigure(3)plot(t,y,':',t,y1,'r*')title('绘制正弦波和余弦波Pos=-1','fontsize',10,'fontweight','bold','fontangle','italic')Lecture3Matlab图形可视化text(7*pi/2,0,'\rightarrowcos(\pi*7/2)=0')legend('正弦波','余弦波',-1)gridoffLecture4MATLAB符号运算(Symbolic)MATLABMatlab符号运算Matlab符号运算介绍Matlab符号运算是通过符号数学工具箱(SymbolicMathToolbox)来实现的。Matlab符号数学工具箱是建立在功能强大的Maple软件的基础上的,当Matlab进行符号运算时,它就请求Maple软件去计算并将结果返回给Matlab。Matlab的符号数学工具箱可以完成几乎所有得符号运算功能。主要包括:符号表达式的运算,符号表达式的复合、化简,符号矩阵的运算,符号微积分、符号作图,符号代数方程求解,符号微分方程求解等。此外,该工具箱还支持可变精度运算,即支持以指定的精度返回结果。Matlab符号运算特点计算以推理方式进行,因此不受计算误差累积所带来的困扰。符号计算指令的调用比较简单,与数学教科书上的公式相近。符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭解不存在时)。符号计算所需的运行时间相对较长。Matlab符号运算举例求一元二次方程ax2+bx+c=0的根>>solve('a*x^2+b*x+c=0')求的根f(x)=(cosx)2的一次导数>>x=sym('x');>>diff(cos(x)^2)计算f(x)=x2在区间[a,b]上的定积分>>symsabx;>>int(x^2,a,b)在进行符号运算时,必须先定义基本的符号对象,可以是符号常量、符号变量、符号表达式等。符号对象是一种数据结构。符号对象与符号表达式含有符号对象的表达式称为符号表达式,Matlab在内部把符号表达式表示成字符串,以与数字变量或运算相区别。符号矩阵/数组:元素为符号表达式的矩阵/数组。sym函数用来建立单个符号变量,一般调用格式为:符号对象的建立:sym和syms符号对象的建立例:>>a=sym('a')符号变量=sym(A)参数A可以是一个数或数值矩阵,也可以是字符串a是符号变量b是符号常量>>b=sym(1/3)C是符号矩阵>>C=sym('[1ab;cd]')符号对象的建立:sym和syms符号对象的建立syms命令用来建立多个符号变量,一般调用格式为:syms符号变量1符号变量2...符号变量n例:>>symsabc>>a=sym('a');>>b=sym('b');>>c=sym('c');符号表达式的建立:例:建立符号表达式通常有以下2种方法:(1)用sym函数直接建立符号表达式。(2)使用已经定义的符号变量组成符号表达式。>>y=sym('sin(x)+cos(x)')>>x=sym('x');>>y=sin(x)+cos(x)符号表达式的建立>>symsx;>>y=sin(x)+cos(x)Matlab符号运算采用的运算符和基本函数,在形状、名称和使用上,都与数值计算中的运算符和基本函数完全相同符号对象的基本运算基本运算符普通运算:+-*\/^数组运算:.*.\./.^矩阵转置:'.'例:>>X=sym('[x11,x12;x21,x22;x31,x32]');>>Y=sym('[y11,y12,y13;y21,y22,y23]');>>Z1=X*Y;Z2=X'.*Y;符号对象的基本运算rank、det、inv、eig、lu、qr、svddiag、triu、tril、expmabs、conj、real、imagexp、log、log2、log10、sqrtasin、acos、atan、acot、asec、acsc、…sin、cos、tan、cot、sec、csc、…三角函数与反三角函数、指数函数、对数函数等基本函数查找符号表达式中的符号变量若表达式中有两个符号变量与x的距离相等,则ASCII码大者优先。查找符号变量findsym(expr)按字母顺序列出符号表达式expr中的所有符号变量findsym(expr,N)按顺序列出expr中离x最近的N个符号变量常量pi,i,j不作为符号变量例:>>f=sym('2*w-3*y+z^2+5*a')>>findsym(f)>>findsym(f,3)>>findsym(f,1)findsym举例符号表达式的替换subs(f,x,a)用a替换字符函数f中的字符变量xa是可以是数/数值变量/表达式或字符变量/表达式若x是一个由多个字符变量组成的数组或矩阵,则a应该具有与x相同的形状的数组或矩阵。用给定的数据替换符号表达式中的指定的符号变量subs举例>>f=sym('2*u');>>subs(f,'u',2)>>f2=subs(f,'u','u+2')>>a=3;>>subs(f2,'u',a+2)>>subs(f2,'u','a+2')>>symsxy>>f3=subs(f,'u',x+y)>>subs(f3,[x,y],[1,2])ans=4f2=2*(u+2)ans=14ans=2*((a+2)+2)f3=2*x+2*yans=6例:指出下面各条语句的输出结果f=2*u符号矩阵>>A=sym('[1+x,sin(x);5,exp(x)]')使用sym函数直接生成将数值矩阵转化成符号矩阵符号矩阵中元素的引用和修改>>B=[2/3,sqrt(2);5.2,log(3)];>>C=sym(B)>>A=sym('[1+x,sin(x);5,exp(x)]');>>A(1,2)%引用>>A(2,2)=sym('cos(x)')%重新赋值六类常见符号运算因式分解、展开、合并、简化及通分等计算极限计算导数计算积分符号求和代数方程和微分方程求解因式分解因式分解factor(f)>>symsx;f=x^6+1;>>factor(f)factor也可用于正整数的分解>>s=factor(100)>>factor(sym('12345678901234567890'))大整数的分解要转化成符号常量函数展开函数展开expand(f)>>symsx;f=(x+1)^6;>>expand(f)多项式展开三角函数展开>>symsxy;f=sin(x+y);>>expand(f)合并同类项合并同类项collect(f,v):按指定变量v进行合并collect(f):按默认变量进行合并>>symsxy;>>f=x^2*y+y*x-x^2+2*x;>>collect(f)>>collect(f,y)函数简化函数简化y=simple(f):对f尝试多种不同的算法进行简化,返回其中最简短的形式[How,y]=simple(f):y为f的最简短形式,How中记录的为简化过程中使用的方法。simplify3*cos(x)^2-12*cos(x)^2-sin(x)^2combine(trig)x^3-x(x+1)*x*(x-1)factor(x+1)^3x^3+3*x^2+3*x+1expand4*x^3-3*xcos(3*acos(x))HOWRf函数简化函数简化y=simplify(f):对f进行简化>>symsx;f=sin(x)^2+cos(x)^2;>>simplify(f)>>symscalphabeta;>>f=exp(c*log(sqrt(alpha+beta)));>>simplify(f)函数简化举例>>symsx;>>f=(1/x^3+6/x^2+12/x+8)^(1/3);>>y1=simplify(f)>>g1=simple(f)>>g2=simple(g1)多次使用simple可以达到最简表达。例:简化分式通分函数简化[N,D]=numden(f):N为通分后的分子,D为通分后的分母>>symsxy;>>f=x/y+y/x;>>[N,D]=numden(f)>>[n,d]=numden(sym(112/1024))horner多项式horner多项式:嵌套形式的多项式>>symsx;>>f=x^4+2*x^3+4*x^2+x+1;>>g=horner(f)例:计算极限limit(f,x,a):计算limit(f,a):当默认变量趋向于a时的极限limit(f):计算a=0时的极限limit(f,x,a,'right'):计算右极限limit(f,x,a,'left'):计算左极限例:计算,>>symsxhn;>>L=limit((log(x+h)-log(x))/h,h,0)>>M=limit((1-x/n)^n,n,inf)计算导数g=diff(f,v):求符号表达式f关于v的导数g=diff(f):求符号表达式f关于默认变量的导数g=diff(f,v,n):求f关于v的n阶导数diff>>symsx;>>f=sin(x)+3*x^2;>>g=diff(f,x)计算积分int(f,v,a,b):计算定积分int(f,a,b):计算关于默认变量的定积分int(f,v):计算不定积分int(f):计算关于默认变量的不定积分>>symsx;f=(x^2+1)/(x^2-2*x+2)^2;>>I=int(f,x)>>K=int(exp(-x^2),x,0,inf)例:计算和符号求和>>symsn;f=1/n^2;>>S=symsum(f,n,1,inf)>>S100=symsum(f,n,1,100)symsum(f,v,a,b):求和symsum(f,a,b):关于默认变量求和例:计算级数及其前100项的部分和例:计算函数级数>>symsnx;f=x/n^2;>>S=symsum(f,n,1,inf)代数方程求解solve(f,v):求方程关于指定自变量的解,f可以是用字符串表示的方程、符号表达式或符号方程;solve也可解方程组(包含非线性);得不到解析解时,给出数值解。微分方程求解dsolvey=dsolve('eq1','eq2',...,'cond1','cond2',...,'v')其中y为输出的解,eq1、eq2、...为微分方程,cond1、cond2、...为初值条件,v为自变量例1:求微分方程的通解,并验证。>>y=dsolve('Dy+2*x*y=x*exp(-x^2)','x')>>symsx;diff(y)+2*x*y-x*exp(-x^2)微分方程求解几点说明如果省略初值条件,则表示求通解;如果省略自变量,则默认自变量为tdsolve('Dy=2*x','x');%dy/dx=2xdsolve('Dy=2*x');%dy/dt=2x若找不到解析解,则返回其积分形式。微分方程中用D表示对自变量的导数,如:Dyy';D2yy'';D3yy'''微分方程求解例2:求微分方程满足初值条件的特解,并画出解函数的图形。>>y=dsolve('x*Dy+y-exp(x)=0',...'y(1)=2*exp(1)','x')>>ezplot(y);微分方程求解例3:求微分方程组在初值条件下的特解,并画出解函数的图形。[x,y]=dsolve('Dx+5*x+y=exp(t)','Dy-x-3*y=0',...'x(0)=1','y(0)=0','t')ezplot(x,y,[0,1.3]);注:解微分方程组时,如果所给的输出个数与方程个数相同,则方程组的解按词典顺序输出。其它运算反函数finverse(f,v):求f关于指定变量v的反函数finverse(f):求f关于默认变量的反函数>>symsxt;f=x^2+2*t;>>g1=finverse(f,x)>>g2=finverse(f,t)例:计算函数的反函数Lecture5MATLAB程序设计基本要求:(1)学会Matlab的M文件的编写方法,包括命令文件和函数文件。了解M件的调试命令和调试方法;(2)熟练掌握Matlab的程序结构(顺序结构、循环结构和分支结构)与 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 控制语句.OutlineM-file(M文件);数据的输入和输出;程序设计;函数文件;全局变量和局部变量Lecture5Matlab语言程序设计MATLAB有两种工作方式:交互式的命令行工作方式M文件的程序工作方式一.M文件一.M文件用MATLAB语言编写的程序,称为M文件。M文件有两类:命令文件和函数文件。命令文件:没有输入参数,也不返回输出参数。函数文件:可以输入参数,也可返回输出参数。1.M文件的建立与编辑建立新的M文件:从MATLAB命令窗口的File菜单中选择New菜单项,再选择M-file命令。一.M文件编辑已有的M文件:从MATLAB命令窗口的Flie菜单中选择OpenM-file命令。2.命令文件将需要运行的命令编辑到一个命令文件中,然后在MATLAB命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。【例1】建立一个命令文件将变量a,b的值互换。一.M文件a=1:9;b=[11,12,13;14,15,16;17,18,19];c=a;a=b;b=c;ab在MAT
本文档为【MATLAB经典教程(全)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
平方米
暂无简介~
格式:ppt
大小:2MB
软件:PowerPoint
页数:192
分类:成人教育
上传时间:2022-04-04
浏览量:1