MATLAB经典教程(全)

2、环境。4Matlab简介qMatlab:MatrixLaboratory矩阵实验室qMatlab的发展的发展l1980年,Moler教授用Fortran语言编写了集命令翻译、科学计算于一身的一套交互式软件系统。l1984年,Moler等成立了TheMathWorks的公司,用C语言完全改写Matlab,并推出第一个商业版。l增添图形图像处理、符号运算、以及与其他流行软件的接口功能,使得Matlab的功能越来越强大。l到九十年代,在国际上30几个数学类科技应用软件中,Matlab在数值计算方面独占鳌头。5q目前,Matlab已成为世界

3、顶尖的数学应用软件,以其强大的工程计算、算法研究、工程绘图、应用程序开发、数据分析和动态仿真等功能,在航空航天、机械制造和工程建筑等领域发挥着越来越重要的作用。就影响而言,至今仍然没有一个别的计算软件可与Matlab匹敌。qMatlab的发行的发行1984年,Matlab1.0(DOS版,182K,20多个函数)1992年,Matlab4.0(93年推出Windows版,加入simulink)1994年,Matlab4.2(得到广泛重视和应用)1999年,Matlab5.3(真正实现32位运算)2002年,Matlab6.5(采用JIT加速器)2004年,Matlab

4、7.0自2006年起,Matlab每年更新两次Matlab简介6q购买(下载)Matlab软件Matlab的安装q插入光盘,自动运行;或点击安装程序setup.exen必须安装的部件MatlabSymbolicMathToolboxExtendedSymbolicMathl这里以Matlab7.0.4为例l自R2008a开始增加了激活要求7Matlab的特点与功能qMatlab具有很强的数值计算功能具有很强的数值计算功能lMatlab以以矩阵矩阵作为数据操作的基本单位,作为数据操作的基本单位,但无需预先指定矩阵维数(但无需预先指定矩阵

5、维数(动态定维动态定维)l按照按照IEEE的数值计算标准进行计算的数值计算标准进行计算l提供十分丰富的数值计算函数,方便计算,提高效率提供十分丰富的数值计算函数,方便计算,提高效率lMatlab命令与数学中的符号、公式非常接近,命令与数学中的符号、公式非常接近,可读性强,容易掌握可读性强,容易掌握qMatlab是一个交互式软件系统是一个交互式软件系统输入一条命令,立即就可以得出该命令的结果输入一条命令,立即就可以得出该命令的结果8Matlab的特点与功能qMatlab符号计算功能符号计算功能Matlab和著名的符号计算语言和著名的符号计算语言Maple相结合相结合

6、qMatlab的编程功能的编程功能Matlab具有具有程序结构控制程序结构控制、函数调用函数调用、数据结构数据结构、输入输输入输出出、面向对象面向对象等程序语言特征,而且等程序语言特征,而且简单易学简单易学、编程效率编程效率高高。通过。通过Matlab进行编程完成特定的任务进行编程完成特定的任务qMatlab的绘图功能的绘图功能Matlab提供丰富的绘图命令,提供丰富的绘图命令,很方便实现数据的可视化很方便实现数据的可视化9qMatlab丰富的工具箱(丰富的工具箱(toolbox)Matlab的特点与功能根据专门领域中的特殊需要而设计的各种可选工具箱根据专门领域中的特殊需要而

7、设计的各种可选工具箱qMatlab的的Simulink动态仿真集成环境动态仿真集成环境提供建立系统模型、选择仿真参数和数值算法、启动仿提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能仿真结果等功能SymbolicMathPDEOptimizationSignalprocessImageProcessStatisticsControlSystemSystemIdentification10Matlab的基本用法qMatlab系统的启动系统的启动l使用使用W

8、indows“开始开始”菜单菜单l运行运行Matlab系统启动程序系统启动程序matlabl双击双击Matlab快捷图标快捷图标qMatlab系统的退出系统的退出l在在Matlab主窗口主窗口File菜单中选择菜单中选择ExitMatlabl在在Matlab命令窗口输入命令窗口输入exit或或quitl单击单击Matlab主窗口的主窗口的“关闭关闭”按钮按钮11Matlab的工作界面命令窗口命令窗口当前工当前工作目录作目录当前工当前工作空间作空间输入命令的输入命令的历史记录历史记录命令命令提示符提示符12q定义矩阵:直接输入法定义矩阵:

9、直接输入法l矩阵用方括号矩阵用方括号“”括起括起例:例:A=123;456;789l矩阵同一行中的元素之间用矩阵同一行中的元素之间用空格空格或或逗号逗号分隔分隔l矩阵行与行之间用矩阵行与行之间用分号分号分开分开l直接输入法中,分号可以用直接输入法中,分号可以用回车回车代替代替例:例:矩阵qMatlab的操作对象是的操作对象是l13q矩阵元素可以是任何数值表达式矩阵元素可以是任何数值表达式例:例:x=-1.3,sqrt(3),(1+2+3)*4/5矩阵元素赋值q矩阵元素的单独赋值矩阵元素的单独赋值例:例:x(5)=abs(x

10、(1)例:例:x(5)=abs(x(6)自动将向量自动将向量x的长度扩展到的长度扩展到5,并将未赋值部分置零。并将未赋值部分置零。14q大矩阵可以把小矩阵作为其元素大矩阵可以把小矩阵作为其元素矩阵元素赋值例:例:A=A;111213在原矩阵的下方加一行在原矩阵的下方加一行如何在原矩阵的右边添加一列?如何在原矩阵的右边添加一列?15q单个元素的引用单个元素的引用例:例:A(2,3)矩阵元素的引用q多个元素的引用:冒号的特殊用法多个元素的引用:冒号的特殊用法利用小括弧和元素所在的位置利用小括弧和元素所在的位置(下标下标)x(i):向量向量x中的第中的第i

11、个元素个元素A(i,j):矩阵矩阵A中的第中的第i行,第行,第j列元素列元素a:b:c产生一个由产生一个由等差序列等差序列组成的向量;组成的向量;a是首项,是首项,b是公是公差,差,c确定确定最后一项;若最后一项;若b=1,则则b可以省略。可以省略。例:例:x=1:2:5y=1:2:6例:例:x=2:1:5y=2:5例:例:x=3:2:116例:例:x(1:3)A(3,1:3)矩阵元素的引用A(i:j,m:n)表示由矩阵表示由矩阵A的第的第i到第到第j行和第行和第m到第到第n列交叉线上的元素组成的列交叉线上的元素组成的子

14、连接起来的式子,其结果被赋给赋值号其结果被赋给赋值号“=”左边的变量左边的变量20q分号和续行符的作用Matlab变量l若不想在屏幕上输出结果,可以在语句最后加若不想在屏幕上输出结果,可以在语句最后加分号分号l如果语句很长,可用如果语句很长,可用续行符续行符“”(三个点)续行(三个点)续行续行符续行符的前面最好留一个空格的前面最好留一个空格例:例:21q变量的查询Matlab变量lwho显示工作空间中的所有变量显示工作空间中的所有变量lwhos查看工作空间中变量的详细属性查看工作空间中变量的详细属性22q系统预定义变量Matlab变量upi:圆周率圆周率,

15、其值为,其值为imag(log(-1)uinf,Inf:无穷大无穷大unan,NaN:Not-a-Number,一个不定值,如,一个不定值,如0/0ueps:浮点运算相对精度浮点运算相对精度q特殊变量特殊变量ansui,j:虚部单位,即虚部单位,即1应尽量避免给系统预定义变量重新赋值!应尽量避免给系统预定义变量重新赋值!23q数与算术表达式Matlab数值运算uMatlab中的数默认是中的数默认是双精度实数双精度实数,表示方法,表示方法同同C语言语言3,-9,0.4,1.603e-12,3.23e+20u浮点运算的浮点运算的相对误差为相对误差

16、为epsu浮点数表示范围为浮点数表示范围为:10-30810308u复数的输入复数的输入lz=3+4i(4与与i之间不能有空格之间不能有空格)lz=3+4*i复数作为矩阵元素输入时,加号两边不能有空格复数作为矩阵元素输入时,加号两边不能有空格!!24q数学运算符u+加法加法Matlab数值运算u-减法减法u*乘法乘法u/和和除法(右除和左除)除法(右除和左除)u幂运算幂运算q命令分隔符:逗号和分号25q输出格式输出格式Matlab的输出uMatlab以双精度执行所有的运算,运算结果可以以双精度执行所有的运算,运算结果可以在在屏幕上输出屏幕

17、上输出,同时,同时赋给指定变量;赋给指定变量;若无指定变量,则系若无指定变量,则系统会自动将结果赋给变量统会自动将结果赋给变量“ans”uMatlab中数的输出格式可以通过中数的输出格式可以通过format命令指定命令指定format只改变变量的输出格式,只改变变量的输出格式,但不会影响变量的值!但不会影响变量的值!26各种format格式格式解释例format短格式(缺省显示格式),同short3.1416formatshort短格式(缺省显示格式),只显示5位3.1416formatlong长格式,双精度数15位,单精度数7位3.14159265358979forma

18、tshorte短格式e方式(科学计数格式)3.1416e+000formatlonge长格式e方式3.141592653589793e+000formatshortg短格式g方式3.1416formatlongg长格式g方式3.14159265358979DrWangZhengsheng-LectureNotes27变量的存储q存储当前工作空间中的变量存储当前工作空间中的变量usave将所有变量存入文件将所有变量存入文件matlab.matusavemydata将所有变量存入将所有变量存入指定文件指定文件mydata.matq存储指定的变量存储指定的变

19、量usavemydata.mat将所有变量存入将所有变量存入文件文件mydata.matsave文件名文件名变量名列表变量名列表例例:savemydataAxz变量名列表中各变量之间用变量名列表中各变量之间用空格空格分隔分隔28变量的读取q将数据文件中的变量载入当前工作空间将数据文件中的变量载入当前工作空间uloadmydata载入数据文件中的所有变量载入数据文件中的所有变量uloadmydataAx从数据文件中提取指定变量从数据文件中提取指定变量q清除当前工作空间中的变量清除当前工作空间中的变量uclear清除当前工作空间中的所有变量清除当前工

20、作空间中的所有变量uclearAx清除指定的变量清除指定的变量DrWangZhengsheng-LectureNotes29qMatlab的命令记忆功能:的命令记忆功能:上下箭头键上下箭头键q命令补全功能:命令补全功能:Tab键键可以先输入命令的前几个字符,再按上下键缩小搜索范围可以先输入命令的前几个字符,再按上下键缩小搜索范围q用用Esc键键删除命令行删除命令行DrWangZhengsheng-LectureNotes30Lecture2MATLAB矩阵(数值)运算矩阵(数值)运算DrWangZhengsheng-LectureNot

21、es31n利用函数建立数值矩阵:MATLAB提供了许多生成和操作矩阵的函数,可以利用它们去建立矩阵。n例如:reshape函数和diag函数等。nreshape函数用于建立数值矩阵。ndiag函数用于产生对角阵。n利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。其步骤为:n第一步:使用编辑程序输入文件内容。n第二步:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。n第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。DrWangZhengsheng-LectureNotes32n利用利

22、用M文件建立矩阵:文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。其步骤为:n第一步:使用编辑程序输入文件内容。n第二步:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。n第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。n子矩阵操作子矩阵操作DrWangZhengsheng-LectureNotes33n2矩阵的基本运算矩阵的基本运算n()矩阵转置n()矩阵加和减n()矩阵乘法n()矩阵除法Ab=inv(A)*bn()矩阵的乘方a2DrWa

23、ngZhengsheng-LectureNotes34n3矩阵的函数矩阵的函数nhelpmatfunnMatrixfunctions-numericallinearalgebra.nnMatrixanalysis.nnorm-Matrixorvectornorm.nnormest-Estimatethematrix2-norm.nrank-Matrixrank.ndet-Determinant.ntrace-Sumofdiagonalelements.nnull-Nullspace.north-Orth

24、ogonalization.nrref-Reducedrowechelonform.nsubspace-Anglebetweentwosubspaces.DrWangZhengsheng-LectureNotes35n3矩阵的函数矩阵的函数nLinearequations.nand/-Linearequationsolution;usehelpslash.ninv-Matrixinverse.nrcond-LAPACKreciprocalconditionestimatorncond-Conditionnumb

25、erwithrespecttoinversion.ncondest-1-normconditionnumberestimate.nnormest1-1-normestimate.nchol-Choleskyfactorization.ncholinc-IncompleteCholeskyfactorization.nlu-LUfactorization.nluinc-IncompleteLUfactorization.nqr-Orthogonal-triangulardecomposition.nlsqnonneg-

26、Linearleastsquareswithnonnegativityconstraints.npinv-Pseudoinverse.nlscov-Leastsquareswithknowncovariance.n36n3矩阵的函数矩阵的函数nEigenvaluesandsingularvalues.neig-Eigenvaluesandeigenvectors.nsvd-Singularvaluedecomposition.ngsvd-Generalizedsingularvaluedecomposition.neig

27、s-Afeweigenvalues.nsvds-Afewsingularvalues.npoly-Characteristicpolynomial.npolyeig-Polynomialeigenvalueproblem.ncondeig-Conditionnumberwithrespecttoeigenvalues.nhess-Hessenbergform.nqz-QZfactorizationforgeneralizedeigenvalues.nschur-Schurdecomposition.nn37

28、n3矩阵的函数矩阵的函数nMatrixfunctions.nexpm-Matrixexponential.nlogm-Matrixlogarithm.nsqrtm-Matrixsquareroot.nfunm-Evaluategeneralmatrixfunction.nnFactorizationutilitiesnqrdelete-DeleteacolumnorrowfromQRfactorization.nqrinsert-InsertacolumnorrowintoQRfactorization.n

29、rsf2csf-Realblockdiagonalformtocomplexdiagonalform.ncdf2rdf-Complexdiagonalformtorealblockdiagonalform.nbalance-Diagonalscalingtoimproveeigenvalueaccuracy.nplanerot-Givensplanerotation.ncholupdate-rank1updatetoCholeskyfactorization.nqrupdate-rank1update

30、toQRfactorization.DrWangZhengsheng-LectureNotes38n4建立矩阵的函数建立矩阵的函数n常用函数有:常用函数有:neye(size(A)产生与A矩阵同阶的单位矩阵nzeros(m,n)产生0矩阵nones(m,n)产生幺矩阵nrand(m,n)产生随机元素的矩阵nSize(a)返回包含两个元素的向量。nLength(a)返回向量的长度。DrWangZhengsheng-LectureNotes39常见矩阵生成函数zeros(m,n)生成一个m行n列的零矩阵,m=n时可简写为zeros(n)ones(m

31、,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(

32、n)其它特殊矩阵生成函数:magic、hilb、pascalDrWangZhengsheng-LectureNotes40n5数组运算数组运算n(1)数组的加和减n(2)数组的乘和除n(3)数组的乘方DrWangZhengsheng-LectureNotes4166应用举例应用举例n1、行列式计算;、行列式计算;n2、求解线性方程组;、求解线性方程组;n3、解特征值问题、解特征值问题DrWangZhengsheng-LectureNotes42Lecture3MATLAB图形与可视化图形与可视化(Graphic)DrWangZhengsheng-Le

33、ctureNotes43(1)掌握掌握图形窗口图形窗口的创建与控制,以及图形窗口的的创建与控制,以及图形窗口的基本操作基本操作;(2)熟练掌握)熟练掌握二维和三维绘图基本的命令二维和三维绘图基本的命令、线型控制;、线型控制;(3)初步掌握用)初步掌握用特殊的图形特殊的图形来表现特殊数据的性质,如面积图、直方来表现特殊数据的性质,如面积图、直方图、饼图等。图、饼图等。(4)掌握)掌握坐标轴的控制和图形标注命令坐标轴的控制和图形标注命令及其用法。及其用法。DrWangZhengsheng-LectureNotes44AA、二维平面图形与坐标系、二维平面图形与坐标系1.几个基本

34、的绘图命令几个基本的绘图命令a.线性坐标曲线线性坐标曲线plot函数命令函数命令plot是是MATLAB二维曲线绘图中最简单、最重二维曲线绘图中最简单、最重要、使用最广泛的一个线性绘图函数。它可以要、使用最广泛的一个线性绘图函数。它可以生成线段、生成线段、曲线和参数方程曲线曲线和参数方程曲线的函数图形。的函数图形。命令格式命令格式::plot(X,Y)plot(x1,y1,x2,y2,):综合调用方式综合调用方式DrWangZhengsheng-LectureNotes45用命令用命令plot(x,y)绘制函数绘制函数y=cos(x)在两个周期内的图形。在两

35、个周期内的图形。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)DrWangZhengsheng-LectureNotes46二维函数曲线专用命令二维函数曲线专用命令fplotfplot用用plot绘图在确定自变量的取值间隔时,一般采用绘图在确定自变量的取值间隔时,一般采用平均间隔平均间隔,有时会因,有时会因某处某处间距太大,而间距太大,而不能反映出函数的变化不能

36、反映出函数的变化情况。情况。fplot是绘制函数是绘制函数y=f(x)图形的专用命令图形的专用命令,它的它的数据点是自适应产生的数据点是自适应产生的,对那些导数变化较大的,对那些导数变化较大的函数,用函数,用fplot函数绘出的曲线比等分取点所画出的曲线函数绘出的曲线比等分取点所画出的曲线更加接近真实更加接近真实。fplot函数命令的调用格式为:函数命令的调用格式为:X,Y=fplot(fun,lims)fun:函数名字符串;函数名字符串;lims:定义定义x的取值区间,的取值区间,lims=xmin,xmax;二维函数曲线专用命令二维函数曲线专用命令ezplotDrW

37、angZhengsheng-LectureNotes472.线型和颜色线型和颜色plot函数可以设置曲线的函数可以设置曲线的线段类型、定点标记和线段颜色线段类型、定点标记和线段颜色。常用的线段、颜色与定点标记参数常用的线段、颜色与定点标记参数DrWangZhengsheng-LectureNotes48调用格式调用格式:plot(x,y,s),s为类型说明参数,是字符串。为类型说明参数,是字符串。s字符串字符串可以是三种类型的可以是三种类型的符号之一符号之一,也可以是线型与颜色和定点标记,也可以是线型与颜色和定点标记与颜色的与颜色的组合组合;如果如果没有没有s参

38、数参数,plot将使用将使用缺省设置(实线,前七种颜色顺序着色缺省设置(实线,前七种颜色顺序着色)绘制曲线;绘制曲线;在当前坐标系中绘图时,每调入一次绘图函数,在当前坐标系中绘图时,每调入一次绘图函数,MATLAB将擦掉坐标将擦掉坐标系中已有的图形对象。可以用系中已有的图形对象。可以用holdon命令命令在一个坐标系中在一个坐标系中增加新的图增加新的图形对象形对象。注意。注意MATLAB会根据新图形的大小,重新改变坐标系的比例。会根据新图形的大小,重新改变坐标系的比例。用不同的用不同的线型和标注线型和标注来绘制两条曲线。来绘制两条曲线。t1=0:0.1:2*pi;t2=0:0.1

39、:6;y1=sin(t1);y2=sqrt(t2);plot(t1,y1,:hb,t2,y2,-g)DrWangZhengsheng-LectureNotes493.图形窗口的分割图形窗口的分割有时需要在有时需要在一个图形窗口中显示几幅图一个图形窗口中显示几幅图,以便对几个函数进行直观、,以便对几个函数进行直观、便捷的比较。由于每个绘图命令在绘制数据图像时都会将已有图形覆便捷的比较。由于每个绘图命令在绘制数据图像时都会将已有图形覆盖掉,而用盖掉,而用hold命令不能实现同时显示几个不同坐标尺寸下的图形,命令不能实现同时显示几个不同坐标尺寸下的图形,用用figure命

40、令再创窗口又很难同时比较由不同的数据绘得的图像。命令再创窗口又很难同时比较由不同的数据绘得的图像。实现在实现在同一个窗口中同时显示多个图像同一个窗口中同时显示多个图像的命令的命令subplot。使用格式为:使用格式为:subplot(m,n,i)其含义为其含义为:把图形窗口分割为:把图形窗口分割为m行行n列子窗口列子窗口,然后选,然后选定定第第i个窗口为当前窗口个窗口为当前窗口。subplot命令不仅用于命令不仅用于二维图形二维图形,对,对三维图形三维图形一样适用。其本质是将一样适用。其本质是将figure窗口分为几个区域窗口分为几个区域,再在每个区域内分别绘图。,再在每

41、个区域内分别绘图。DrWangZhengsheng-LectureNotes50用用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:1

42、0;y=sqrt(x);plot(x,y,:rd)DrWangZhengsheng-LectureNotes514.坐标系的调整坐标系的调整实现坐标系的调整的命令是实现坐标系的调整的命令是axis函数。函数。调用格式为:调用格式为:axis(xmin,xmax,ymin,ymax,zmin,zmax)坐标的最小值(坐标的最小值(xmin,ymin,zmin)必须小于相应的最大值必须小于相应的最大值(xmax,ymax,zmax),),否则会出错。否则会出错。自动坐标系与用自动坐标系与用axisaxis函数函数调整后的坐标系的比较。调整后的坐标系的比较。su

43、bplot(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)DrWangZhengsheng-LectureNotes52BB、三维绘图、三维绘图1.1.三维三维曲线曲线绘图命令绘图命令三维函数三维函数plot3主要用来表现主要用来表现单参数的三维曲线单参数的三维曲线,与二维绘图函数,与二维绘图函数plot相比,只相比,只多了多了第三维数据第三维数据。其调用格式为:其调用格式为:pl

44、ot3(X1,Y1,Z1,s1,X2,Y2,Z2,s2,)参数的含义如下:参数的含义如下:Xn、Yn、Zn:第一到三维数据,是第一到三维数据,是尺寸相等的尺寸相等的向量向量/矩阵;矩阵;s、s1、s2:是是字符串字符串,用来设置,用来设置线型、颜色、数据点线型、颜色、数据点标记。标记。DrWangZhengsheng-LectureNotes53x、y、z是向量时,是向量时,plot3命令的使用命令的使用t=0:0.1:8*pi;plot3(sin(t),cos(t),t)title(绘制螺旋线)%用命令用命令title对图形主题进行标注对图形主题进行标注xlabel

45、(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)DrWangZhengsheng-LectureNotes5

46、4为了绘制定义在平面区域为了绘制定义在平面区域D=x0,xmD=x0,xmy0,yny0,yn上的上的三维曲面三维曲面z=f(x,yz=f(x,y)),首先将,首先将x0,xmx0,xm在在xx方向分成方向分成mm份,将份,将y0,yny0,yn在在yy方方向分成向分成nn份,由各划点分别作平行于坐标轴的直线,将份,由各划点分别作平行于坐标轴的直线,将区域区域DD分成分成mmnn个小矩形个小矩形;对于每个小矩形,计算出;对于每个小矩形,计算出网格点的函数值网格点的函数值,决定出空,决定出空间中四个顶点(间中四个顶点(xi,yi,f(xi

47、,yi)xi,yi,f(xi,yi)),),连接四个顶点得到一个连接四个顶点得到一个空间的四空间的四边形片边形片;所有四边形片连在一起构成函数;所有四边形片连在一起构成函数z=f(x,y)z=f(x,y)定义在区域定义在区域DD上上的的空间网格曲面空间网格曲面。因此,三维曲面绘图命令可分为因此,三维曲面绘图命令可分为平面网格点的生成平面网格点的生成、在平面网格基础、在平面网格基础上上绘制三维网格绘制三维网格及对及对三维表面进行处理三维表面进行处理三个步骤。三个步骤。DrWangZhengsheng-LectureNotes55a.a.平面网格点的生成平面网格点的生成函数命令函数

48、命令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将将由两个向量决定的区域转换为对应的网格点矩阵。由两个向量

49、决定的区域转换为对应的网格点矩阵。DrWangZhengsheng-LectureNotes56函数函数,定义区域为,定义区域为-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.

50、036600.0366-0.000700.000722yxexzDrWangZhengsheng-LectureNotes57利用利用函数函数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是同维数的矩阵,网格是同维数的矩阵,网格曲面的网格顶点是(曲面的网

51、格顶点是(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设置曲面属性。设置曲面属性。DrWangZhengsheng-LectureNotes58用用mesh命令绘制上例中的网格曲面。命令绘制上

53、rf绘制图形。绘制图形。z=peaks;%绘制山峰的图像,将函数值赋予变量绘制山峰的图像,将函数值赋予变量zsurf(z)%对山峰的图像进行着色处理对山峰的图像进行着色处理shadinginterp%函数函数shading改变着色方式改变着色方式DrWangZhengsheng-LectureNotes603.等高线图形的绘制等高线图形的绘制4.三维视图可视效果的控制三维视图可视效果的控制5.柱面和球面的三维表达柱面和球面的三维表达(书书)DrWangZhengsheng-LectureNotes61a.柱面的表达柱面的表达cylindercylinde

54、r命令中,命令中,柱面的轴线定义为柱面的轴线定义为z轴轴,只要给出,只要给出母线母线的描述就可完的描述就可完成一个柱面。成一个柱面。调用格式为:调用格式为:X,Y,Z=cylinder(R,N)X,Y,Z=cylinder(R,N);X,Y,Z=cylinder(R)X,Y,Z=cylinder(R):缺省值缺省值N=20N=20;X,Y,Z=cylinderX,Y,Z=cylinder:缺省值缺省值N=20N=20,R=1R=1,11。RR:是一描述柱面母线的向量;是一描述柱面母线的向量;NN:是旋转柱面上的分割线条数;是旋转柱面上的分割线条数;

55、XX,YY,ZZ:是返回的是返回的xx,yy,zz坐标向量。坐标向量。绘制一个柱面。绘制一个柱面。t=pi:0.01:3*pi;r=sin(t)+t;cylinder(r,30)shadinginterpDrWangZhengsheng-LectureNotes62b.球面的表达球面的表达sphere调用格式为:调用格式为:X,Y,Z=sphere(N):产生一个(产生一个(N+1)()(N+1)的矩阵,的矩阵,然后用函数然后用函数surf命令绘制一个命令绘制一个单位的球面,单位的球面,N为设置分割线为设置分割线的条数的条数;X,Y,Z=

56、sphere:缺省缺省值值N=20。画一个球面。画一个球面。X,Y,Z=sphere;surf(X,Y,Z)DrWangZhengsheng-LectureNotes63为了将抽象的数据表达得更形象,除了绘制为了将抽象的数据表达得更形象,除了绘制二维、三维二维、三维图图形外,还要用到形外,还要用到直方图、面积图、饼图直方图、面积图、饼图等特殊图形。等特殊图形。特殊图形指令特殊图形指令DrWangZhengsheng-LectureNotes641.1.面积图命令面积图命令area表现各个不同部分对整体所作的贡献表现各个不同部分对整体所作的贡献area(X,Y)

57、:与与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)gridonDrWangZhengsheng-LectureNo

58、tes652.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,W

59、IDTH)或或bar(Y,WIDTH):用用WIDTH指定指定竖条的宽度竖条的宽度,如果如果WIDTH1,条与条之间将重合。条与条之间将重合。缺省宽度为缺省宽度为0.8;bar(.,grouped):产生缺省的产生缺省的组合组合直方图;直方图;bar(.,stacked):产生产生累积的累积的直方图;直方图;bar(.,linespec):指定指定条的颜色条的颜色;H=bar(.):返回条形图对象的返回条形图对象的句柄句柄。DrWangZhengsheng-LectureNotes66用绘制直方图的几种命令绘制直方图。用绘制直方图的几种命令绘制直方图。X=-2:

60、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)co

THE END
1.MATLABMATLAB ? MATLAB? ? MATLAB? ? MATLAB? . ? MATLAB https://jp.mathworks.com/videos/introduction-to-matlab-1616138942456.html
2.MATLAB下载指南及入门到精通的详细步骤教程计量泵摘要:本指南详细介绍了MATLAB的下载、安装及从入门到精通的全程指导。内容涵盖下载步骤、安装教程、软件功能介绍以及进阶学习路径。本指南旨在帮助初学者快速掌握MATLAB的基本操作,同时帮助资深用户提升技能水平。通过https://www.njchenchuan.com/post/28903.html
3.MATLAB机器学习应用案例及教程MATLAB 机器学习应用案例及教程 一、引言 机器学习是人工智能领域的重要分支,它使计算机能够自动从数据中学习模式和规律,从而进行预测、分类、聚类等任务。MATLAB 作为一款强大的科学计算和工程仿真软件,提供了丰富的机器学习工具箱,涵盖了众多经典和前沿的机器学习算法,方便用户快速实现机器学习模型的构建、训练与评估。本https://blog.csdn.net/qq_57128262/article/details/144388548
4.我要自学网Python程序设计教程(2024版) JAVA语言入门教程2022版 Oracle数据库入门教程 Python爬虫教程 AccessASPASP.NETC#canvasCSSDreamweaverFlashHTMLJavaScriptjQueryLinuxPHPvueWindows后台开发前端设计淘宝开店网络技术网页入门 更多 HTML基础视频教程 全免 微信小程序开发教程2022版 https://www.51zxw.net/
5.matlab教程(网页版)matlab教程,以网页的形式,比较简单、实例很充分,适合与初学。可以看看。 上传者:weixin_42656416时间:2022-09-20 MATLAB综合教程4 《MATLAB综合教程》 1--4 是一起的。 上传者:hermhy时间:2010-05-18 最全的matlab教程下载网址 包含matlab的所有教程下载网站,工具书电子版等 https://www.iteye.com/resource/renjian123456-1521924
6.ASP.NETCore适用于.NET的开源Web框架通过我们的教程、视频课程和文档,了解 ASP.NET Core 提供的所有功能。 了解前端 Web 开发 了解后端 Web 开发 快速且可扩展 在独立的TechEmpower 基准测试中,ASP.NET Core 比任何热门 Web 框架的执行速度都更快。 数据源自TechEmpower 第 21 轮中提供的官方测试。 https://asp.net/
7.当你想用Mac做科研时…也许真的能行?——用于科研的macOS应用RSS 作为快被大多数人遗忘的网络功能,在这方面却有着顽强的生命力。Inoreader 可能是应用最为广泛的在线文献订阅平台,而如果想要在 Mac 上使用RSS 应用,老牌阅读软件 Reeder是不错的选择。除了自定义本地订阅外,Reeder 支持添加 Inoreader,The Old Reader,Feedly等十余种网上订阅源。https://ios.sspai.com/post/58739
8.怎么运行matlab代码?我已经有源代码,但不知道怎么就运行不了呢以及函数调用无误。7. 如果代码中使用了外部库或工具箱,确保Matlab已正确安装并配置了这些工具箱。8. 对于大型项目,可以考虑使用Matlab的项目管理功能,这样可以更方便地组织和管理代码。通过以上步骤,你应该能够成功运行你的Matlab源代码。如果遇到问题,可以查看Matlab的帮助文档或在线论坛寻求帮助。https://zhidao.baidu.com/question/501605111861071732.html
9.matlab网页版下载安装matlab网页版免费下载v5.1.0matlab 网页版科学计算 版本:5.1.0 平台:安卓 类型:手机办公 更新:2024-04-11 16:21 厂商: 语言:中文 如果不会安装游戏,可以点这里:安装教程 资源上传 本地下载 (5.10MB) 二维码扫描下载 7.6 已有135人评分 您还未评分! 查看2024 年安卓游戏排行榜 matlab版本大全 手机版官方版 软件介绍 Matlab是一款https://shouyou.3dmgame.com/android/402232.html
10.EDU教育网邮箱福利优惠大集合Microsoft Office365office365教育桌面版申请教程 Office365 提供 Office365 在线以及桌面应用,国内高校普遍只有在线版,没有激活office2016功能,桌面应用不是每个学校都有,只有有订阅的学校才能使用,国外部分大学才有桌面版。 microsoft365个人版大学生订阅验证教育优惠申请注册教程直达 https://www.liout.com/edudajihe.html/
11.w3cschool官网w3cschool启用中文品牌名--编程狮,是一个专业的W3C前端开发及编程入门学习平台,提供包括HTML,CSS,Javascript,jQuery,C,PHP,Java,Python,Sql,Mysql等编程语言和开源技术的在线教程及使用手册,是类国外w3schools的W3C学习社区及菜鸟编程平台。https://www.w3cschool.cn/
12.CC2019经典教程(彩色版)最新章节在线阅读边做边学:Photoshop图像制作案例教程(第2版·Photoshop 2020) 本书全面、系统地介绍Photoshop2020的基本操作方法、图形图像处理技巧及Photoshop在不同领域的应用,包括Photoshop2020基础知识、插画设计、Banner设计、App设计、H5设计、海报设计、网页设计、包装设计等内容。本书内容以案例为主线,通过案例的操作,学生可以快速熟https://chuangshi.qq.com/detail/36950852
13.技术使用Python来学习数据科学的完整教程由于缺少Python数据科学资源,我决定创建本教程,旨在帮助大家快速入门。在本教程中,我们将讨论如何使用Python来进行数据分析,在实践中总结方法。 Python数据分析基础 为什么要学习使用Python来进行数据分析? 使用Python来进行数据分析的原因有很多,过去一段时间通过对比SAS和R,有以下几点理由: https://www.51cto.com/article/545181.html
14.B站上有哪些学习资源?18、html零基础入门学习代码视频教程/css教程免费网页制作视频教程/h5教程 https://www.bilibili.com/video/BV1hs41117be/ 其他: 1、尚硅谷_韩顺平_Linux教程(千万级学习人次,linux最新升级版) https://www.bilibili.com/video/BV1dW411M7xL/ 2、【教程】MATLAB从入门到秃头 https://m.douban.com/note/770877638/
15.如何用mathtype7?MathType7数学公式编辑器使用图文教程2024最新GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用! 【如果你想靠AI翻身,你先需要一个靠谱的工具!】 强大的MathType软件是一款适用于Windows和Mac的交互式方程编辑器,你可以为网页、出版物、说明以及TeX、LaTeX、MathML文档创建数学符号。下文将具体为大家介绍 MathType软件到底有哪些特色与优势。MathType是一个非常https://www.jb51.net/softjc/927132_all.html
16.欢迎进入《Matlab及其应用》课程网页!—Matlab课程文档MATLAB从入门到精通(第2版), 胡晓冬 等,人民邮电出版社, 2018进一步可按照不同专业需要来选择书籍,如:[1] 《MATLAB及其在理工课程中的应用指南》 [2] 《MATLAB在化学中的应用》 [3] 《MATLAB金融计算与金融数据处理》 [4] 《MATLAB在动态经济学中的应用》 [5] 《管理运筹学和MATLAB软件应用》 [6] 《https://yuleiwhu.github.io/matlab_course/index.html