1、Dr WangZhengsheng-Lecture Notes1MATLABMATLAB1 MATLAB1 MATLAB简介简介Dr WangZhengsheng-Lecture Notes2Matlab 简介q 在欧美各高等院校,Matlab 已经成为线性代数、数值分析、数理统计、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,已成为大学生必须掌握的基本技能之一。Matlab 功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。q Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,自 1984 年推向市场以来,历经二十多年的发展与竞
2、争,现已成为国际公认的最优秀的工程应用开发环境。Dr WangZhengsheng-Lecture Notes3Matlab 简介q Matlab:Matrix Laboratory 矩阵实验室q Matlab 的发展的发展l 1980年,Moler 教授用 Fortran 语言编写了集命令翻译、科学计算于一身的一套交互式软件系统。l 1984年,Moler 等成立了 The MathWorks 的公司,用 C 语言完全改写 Matlab,并推出第一个商业版。l 增添图形图像处理、符号运算、以及与其他流行软件 的接口功能,使得 Matlab 的功能越来越强大。l 到九十年代,在国际上 30 几
3、个数学类科技应用软件中,Matlab 在数值计算方面独占鳌头。Dr WangZhengsheng-Lecture Notes4q 目前,Matlab 已成为世界顶尖的数学应用软件,以其强大的工程计算、算法研究、工程绘图、应用程序开发、数据分析和动态仿真等功能,在航空航天、机械制造和工程建筑等领域发挥着越来越重要的作用。就影响而言,至今仍然没有一个别的计算软件可与 Matlab 匹敌。q Matlab 的发行的发行1984年,Matlab 1.0(DOS版,182K,20多个函数)1992年,Matlab 4.0(93年推出Windows版,加入 simulink)1994年,Matlab 4.
4、2(得到广泛重视和应用)1999年,Matlab 5.3(真正实现32位运算)2002年,Matlab 6.5(采用JIT加速器)2004年,Matlab 7.0自2006年起,Matlab每年更新两次Matlab 简介Dr WangZhengsheng-Lecture Notes5q 购买(下载)Matlab 软件Matlab 的安装q 插入光盘,自动运行;或点击安装程序 setup.exen 必须安装的部件 Matlab Symbolic Math Toolbox Extended Symbolic Math l 这里以 Matlab 7.0.4 为例l 自 R2008a 开始增加了激活要
5、求Dr WangZhengsheng-Lecture Notes6Matlab 的特点与功能q Matlab 具有很强的数值计算功能具有很强的数值计算功能l Matlab 以以矩阵矩阵作为数据操作的基本单位,作为数据操作的基本单位,但无需预先指定矩阵维数(但无需预先指定矩阵维数(动态定维动态定维)l 按照按照 IEEE 的数值计算标准进行计算的数值计算标准进行计算l 提供十分丰富的数值计算函数,方便计算,提高效率提供十分丰富的数值计算函数,方便计算,提高效率l Matlab 命令与数学中的符号、公式非常接近,命令与数学中的符号、公式非常接近,可读性强,容易掌握可读性强,容易掌握q Matlab
6、 是一个交互式软件系统是一个交互式软件系统输入一条命令,立即就可以得出该命令的结果输入一条命令,立即就可以得出该命令的结果Dr WangZhengsheng-Lecture Notes7Matlab 的特点与功能q Matlab 符号计算功能符号计算功能Matlab 和著名的符号计算语言和著名的符号计算语言 Maple 相结合相结合q Matlab 的编程功能的编程功能Matlab具有具有程序结构控制程序结构控制、函数调用函数调用、数据结构数据结构、输入输输入输出出、面向对象面向对象等程序语言特征,而且等程序语言特征,而且简单易学简单易学、编程效率编程效率高高。通过。通过 Matlab 进行编
7、程完成特定的任务进行编程完成特定的任务q Matlab 的绘图功能的绘图功能Matlab提供丰富的绘图命令,提供丰富的绘图命令,很方便实现数据的可视化很方便实现数据的可视化Dr WangZhengsheng-Lecture Notes8q Matlab 丰富的工具箱(丰富的工具箱(toolbox)Matlab 的特点与功能根据专门领域中的特殊需要而设计的各种可选工具箱根据专门领域中的特殊需要而设计的各种可选工具箱q Matlab 的的 Simulink 动态仿真集成环境动态仿真集成环境提供建立系统模型、选择仿真参数和数值算法、启动仿提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统
8、进行仿真、设置不同的输出方式来观察真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能仿真结果等功能Symbolic Math PDEOptimizationSignal processImage ProcessStatisticsControl SystemSystem Identification Dr WangZhengsheng-Lecture Notes9Matlab 的基本用法q Matlab 系统的启动系统的启动l 使用使用 Windows“开始开始”菜单菜单l 运行运行 Matlab 系统启动程序系统启动程序 matlabl 双击双击 Matlab 快捷图标快捷图标q
9、 Matlab 系统的退出系统的退出l 在在 Matlab 主窗口主窗口 File 菜单中选择菜单中选择 Exit Matlabl 在在 Matlab 命令窗口输入命令窗口输入 exit 或或 quitl 单击单击 Matlab 主窗口的主窗口的“关闭关闭”按钮按钮Dr WangZhengsheng-Lecture Notes10Matlab 的工作界面命令窗口命令窗口当前工当前工作目录作目录当前工当前工作空间作空间输入命令的输入命令的历史记录历史记录命令命令提示符提示符Dr WangZhengsheng-Lecture Notes11q 定义矩阵:直接输入法定义矩阵:直接输入法l 矩阵用方括
10、号矩阵用方括号“”括起括起例:例:A=1 2 3;4 5 6;7 8 9l 矩阵同一行中的元素之间用矩阵同一行中的元素之间用 空格空格 或或 逗号逗号 分隔分隔l 矩阵行与行之间用矩阵行与行之间用 分号分号 分开分开l 直接输入法中,分号可以用直接输入法中,分号可以用 回车回车 代替代替例:例:矩阵q Matlab 的操作对象是的操作对象是 l Dr WangZhengsheng-Lecture Notes12q 矩阵元素可以是任何数值表达式矩阵元素可以是任何数值表达式例:例:x=-1.3,sqrt(3),(1+2+3)*4/5矩阵元素赋值q 矩阵元素的单独赋值矩阵元素的单独赋值例:例:x(5
11、)=abs(x(1)例:例:x(5)=abs(x(6)?自动将向量自动将向量 x 的长度扩展到的长度扩展到 5,并将未赋值部分置零。并将未赋值部分置零。Dr WangZhengsheng-Lecture Notes13q 大矩阵可以把小矩阵作为其元素大矩阵可以把小矩阵作为其元素矩阵元素赋值例:例:A=A;11 12 13在原矩阵的下方加一行在原矩阵的下方加一行如何在原矩阵的右边添加一列?如何在原矩阵的右边添加一列?Dr WangZhengsheng-Lecture Notes14q 单个元素的引用单个元素的引用例:例:A(2,3)矩阵元素的引用q 多个元素的引用:冒号的特殊用法多个元素的引用:
12、冒号的特殊用法利用小括弧和元素所在的位置利用小括弧和元素所在的位置(下标下标)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:1Dr WangZhengsheng-Lecture Notes15例:例:x(1:3)A(3,1:3)矩阵
13、元素的引用A(i:j,m:n)表示由矩阵表示由矩阵 A 的第的第 i 到第到第 j 行和第行和第 m 到第到第 n列交叉线上的元素组成的列交叉线上的元素组成的子矩阵子矩阵。可利用冒号提取矩阵可利用冒号提取矩阵 的整行或整列。的整行或整列。例:例:A(1,:)A(:,1:3)A(:,:)Dr WangZhengsheng-Lecture Notes16Matlab帮助系统q 联机帮助联机帮助l help 显示指定命令的简短使用说明显示指定命令的简短使用说明例:例:help eig help help q 详细使用帮助详细使用帮助l doc 以网页形式以网页形式显示指定命令的帮助页显示指定命令的帮
14、助页例:例:doc eig q 其它相关命令其它相关命令helpdesk、helpwinDr WangZhengsheng-Lecture Notes17Matlab 查找命令l lookfor 按指定的关键词查询与之相关的命令按指定的关键词查询与之相关的命令例:例:lookfor inverse l which 显示指定函数所在的目录显示指定函数所在的目录例:例:which eig q 其它相关命令其它相关命令cd、dir、moreDr WangZhengsheng-Lecture Notes18q 变量命名原则变量命名原则Matlab 变量u 以以字母开头字母开头u 后面可以跟后面可以跟
15、字母、数字字母、数字 和和 下划线下划线u 长度长度不超过不超过 63 个字符个字符(6.5 版本以前为版本以前为 19 个个)u 变量名变量名 区分字母的区分字母的 大小大小 写写q Matlab 语句的通常形式语句的通常形式变量变量=表达式表达式表达式是用运算符将有关运算量连接起来的式子,表达式是用运算符将有关运算量连接起来的式子,其结果被赋给赋值号其结果被赋给赋值号“=”左边的变量左边的变量Dr WangZhengsheng-Lecture Notes19q 分号和续行符的作用Matlab 变量l 若不想在屏幕上输出结果,可以在语句最后加若不想在屏幕上输出结果,可以在语句最后加分号分号
16、l 如果语句很长,可用如果语句很长,可用续行符续行符“”(三个点)续行(三个点)续行 续行符续行符的前面最好留一个空格的前面最好留一个空格例:例:Dr WangZhengsheng-Lecture Notes20q 变量的查询Matlab 变量l who 显示工作空间中的所有变量显示工作空间中的所有变量l whos 查看工作空间中变量的详细属性查看工作空间中变量的详细属性Dr WangZhengsheng-Lecture Notes21q 系统预定义变量Matlab 变量u pi:圆周率圆周率 ,其值为,其值为 imag(log(-1)u inf,Inf:无穷大无穷大 u nan,NaN:No
17、t-a-Number,一个不定值,如,一个不定值,如 0/0u eps:浮点运算相对精度浮点运算相对精度 q 特殊变量特殊变量 ansu i,j:虚部单位,即虚部单位,即1 应尽量避免给系统预定义变量重新赋值!应尽量避免给系统预定义变量重新赋值!Dr WangZhengsheng-Lecture Notes22q 数与算术表达式Matlab 数值运算u Matlab 中的数默认是中的数默认是双精度实数双精度实数,表示方法同,表示方法同 C 语言语言3,-9,0.4,1.603e-12,3.23e+20u 浮点运算的相对误差为浮点运算的相对误差为 epsu 浮点数表示范围为:浮点数表示范围为:1
18、0-308 10308u 复数的输入复数的输入l z=3+4i (4 与与 i 之间不能有空格之间不能有空格)l z=3+4*i复数作为矩阵元素输入时,加号两边不能有空格复数作为矩阵元素输入时,加号两边不能有空格!Dr WangZhengsheng-Lecture Notes23q 数学运算符u+加法加法Matlab 数值运算u-减法减法u*乘法乘法u/和和 除法(右除和左除)除法(右除和左除)u 幂运算幂运算q 命令分隔符:逗号和分号Dr WangZhengsheng-Lecture Notes24q 输出格式输出格式Matlab 的输出u Matlab 以双精度执行所有的运算,运算结果可以
19、以双精度执行所有的运算,运算结果可以在在屏幕上输出屏幕上输出,同时,同时赋给指定变量;赋给指定变量;若无指定变量,则系若无指定变量,则系统会自动将结果赋给变量统会自动将结果赋给变量“ans”u Matlab 中数的输出格式可以通过中数的输出格式可以通过 format 命令指定命令指定format 只改变变量的输出格式,只改变变量的输出格式,但不会影响变量的值!但不会影响变量的值!Dr WangZhengsheng-Lecture Notes25各种 format 格式格式解释例format短格式(缺省显示格式),同short3.1416format short短格式(缺省显示格式),只显示5位
20、3.1416format long长格式,双精度数15位,单精度数7位3.14159265358979format short e短格式e方式(科学计数格式)3.1416e+000format long e长格式e方式3.141592653589793e+000format short g短格式g方式3.1416format long g长格式g方式3.14159265358979Dr WangZhengsheng-Lecture Notes26变量的存储q 存储当前工作空间中的变量存储当前工作空间中的变量u save 将所有变量存入文件将所有变量存入文件 matlab.matu save m
21、ydata 将所有变量存入指定文件将所有变量存入指定文件 mydata.matq 存储指定的变量存储指定的变量u save mydata.mat 将所有变量存入文件将所有变量存入文件 mydata.matsave 文件名文件名 变量名列表变量名列表例例:save mydata A x z 变量名列表中各变量之间用变量名列表中各变量之间用空格空格分隔分隔Dr WangZhengsheng-Lecture Notes27变量的读取q 将数据文件中的变量载入当前工作空间将数据文件中的变量载入当前工作空间u load mydata 载入数据文件中的所有变量载入数据文件中的所有变量u load myda
22、ta A x 从数据文件中提取指定变量从数据文件中提取指定变量q 清除当前工作空间中的变量清除当前工作空间中的变量u clear 清除当前工作空间中的所有变量清除当前工作空间中的所有变量u clear A x 清除指定的变量清除指定的变量Dr WangZhengsheng-Lecture Notes28q Matlab 的命令记忆功能:的命令记忆功能:上下箭头键上下箭头键q 命令补全功能:命令补全功能:Tab 键键 可以先输入命令的前几个字符,再按上下键缩小搜索范围可以先输入命令的前几个字符,再按上下键缩小搜索范围 q 用用 Esc 键键 删除命令行删除命令行Dr WangZhengsheng
23、-Lecture Notes29Lecture 2 MATLAB矩阵(数值)运算矩阵(数值)运算Dr WangZhengsheng-Lecture Notes30n利用函数建立数值矩阵:MATLAB提供了许多生成和操作矩阵的函数,可以利用它们去建立矩阵。n例如:reshape函数和diag函数等。nreshape函数用于建立数值矩阵。ndiag函数用于产生对角阵。利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。其步骤为:第一步:使用编辑程序输入文件内容。第二步:把输入的内容以纯文本方式存盘(设文件名为 mymatrix.m)。第三步:在MATLAB命令窗口中输入my
24、matrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。Dr WangZhengsheng-Lecture Notes31n利用利用M文件建立矩阵:文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。其步骤为:n第一步:使用编辑程序输入文件内容。n第 二 步:把 输 入 的 内 容 以 纯 文 本 方 式 存 盘(设 文 件 名 为mymatrix.m)。n第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。n子矩阵操作子矩阵操作Dr WangZhengsheng-Lecture Notes32n2矩阵的基本运算
25、矩阵的基本运算n()矩阵转置n()矩阵加和减n()矩阵乘法n()矩阵除法 Ab=inv(A)*bn()矩阵的乘方 a2Dr WangZhengsheng-Lecture Notes33n3矩阵的函数矩阵的函数n help matfunn Matrix functions-numerical linear algebra.n n Matrix analysis.n norm -Matrix or vector norm.n normest -Estimate the matrix 2-norm.n rank -Matrix rank.n det -Determinant.n trace -Sum
26、 of diagonal elements.n null -Null space.n orth -Orthogonalization.n rref -Reduced row echelon form.n subspace -Angle between two subspaces.Dr WangZhengsheng-Lecture Notes34n3矩阵的函数矩阵的函数n Linear equations.n and/-Linear equation solution;use help slash.n inv -Matrix inverse.n rcond -LAPACK reciprocal
27、condition estimatorn cond -Condition number with respect to inversion.n condest -1-norm condition number estimate.n normest1 -1-norm estimate.n chol -Cholesky factorization.n cholinc -Incomplete Cholesky factorization.n lu -LU factorization.n luinc -Incomplete LU factorization.n qr -Orthogonal-trian
28、gular decomposition.n lsqnonneg -Linear least squares with nonnegativity constraints.n pinv -Pseudoinverse.n lscov -Least squares with known covariance.n Dr WangZhengsheng-Lecture Notes35n3矩阵的函数矩阵的函数n Eigenvalues and singular values.n eig -Eigenvalues and eigenvectors.n svd -Singular value decomposi
29、tion.n gsvd -Generalized singular value decomposition.n eigs -A few eigenvalues.n svds -A few singular values.n poly -Characteristic polynomial.n polyeig -Polynomial eigenvalue problem.n condeig -Condition number with respect to eigenvalues.n hess -Hessenberg form.n qz -QZ factorization for generali
30、zed eigenvalues.n schur -Schur decomposition.n n Dr WangZhengsheng-Lecture Notes36n3矩阵的函数矩阵的函数n Matrix functions.n expm -Matrix exponential.n logm -Matrix logarithm.n sqrtm -Matrix square root.n funm -Evaluate general matrix function.n n Factorization utilitiesn qrdelete -Delete a column or row from
31、 QR factorization.n qrinsert -Insert a column or row into QR factorization.n rsf2csf -Real block diagonal form to complex diagonal form.n cdf2rdf -Complex diagonal form to real block diagonal form.n balance -Diagonal scaling to improve eigenvalue accuracy.n planerot -Givens plane rotation.n cholupda
32、te -rank 1 update to Cholesky factorization.n qrupdate -rank 1 update to QR factorization.Dr WangZhengsheng-Lecture Notes37n4建立矩阵的函数建立矩阵的函数n常用函数有:常用函数有:neye(size(A)产生与A矩阵同阶的单位矩阵nzeros(m,n)产生0矩阵nones(m,n)产生幺矩阵n rand(m,n)产生随机元素的矩阵nSize(a)返回包含两个元素的向量。nLength(a)返回向量的长度。Dr WangZhengsheng-Lecture Notes38常
33、见矩阵生成函数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 时简写为
34、rand(n)randn(m,n)产生均值为0,方差为1的标准正态分布随机矩阵m=n 时简写为 randn(n)其它特殊矩阵生成函数:magic、hilb、pascalDr WangZhengsheng-Lecture Notes395数组运算数组运算(1)数组的加和减(2)数组的乘和除(3)数组的乘方Dr WangZhengsheng-Lecture Notes406 6 应用举例应用举例1、行列式计算;、行列式计算;2、求解线性方程组;、求解线性方程组;3、解特征值问题、解特征值问题Dr WangZhengsheng-Lecture Notes41Lecture 3 MATLAB图形与可视
35、化图形与可视化(Graphic)Dr WangZhengsheng-Lecture Notes42(1)掌握)掌握图形窗口图形窗口的创建与控制,以及图形窗口的的创建与控制,以及图形窗口的基本操作基本操作;(2)熟练掌握)熟练掌握二维和三维绘图基本的命令二维和三维绘图基本的命令、线型控制;、线型控制;(3)初步掌握用)初步掌握用特殊的图形特殊的图形来表现特殊数据的性质,如面积图、直方来表现特殊数据的性质,如面积图、直方 图、饼图等。图、饼图等。(4)掌握)掌握坐标轴的控制和图形标注命令坐标轴的控制和图形标注命令及其用法。及其用法。Dr WangZhengsheng-Lecture Notes43
36、A A、二维平面图形与坐标系、二维平面图形与坐标系 1.几个基本的绘图命令几个基本的绘图命令 a.线性坐标曲线线性坐标曲线 plot 函数命令函数命令 plot 是是 MATLAB 二维曲线绘图中最简单、最重二维曲线绘图中最简单、最重要、使用最广泛的一个线性绘图函数。它可以要、使用最广泛的一个线性绘图函数。它可以生成线段、生成线段、曲线和参数方程曲线曲线和参数方程曲线的函数图形。的函数图形。命令格式命令格式:plot(X,Y)plot(x1,y1,x2,y2,):综合调用方式综合调用方式 Dr WangZhengsheng-Lecture Notes44用命令用命令 plot(x,y)绘制函数
37、绘制函数 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)Dr WangZhengsheng-Lecture Notes45 二维函数曲线专用命令二维函数曲线专用命令 fplotfplot用用plot绘图在确定自变量的取值间隔时,一般采用绘图在确定自变量的取值间隔时,一般采用平均间隔平均间隔,有时会因,有时会因某处某处 间距太大,而间距
38、太大,而不能反映出函数的变化不能反映出函数的变化情况。情况。fplot是绘制函数是绘制函数 y=f(x)图形的专用命令图形的专用命令,它的它的数据点是自适应产生的数据点是自适应产生的,对那些导数变化较大的,对那些导数变化较大的函数,用函数,用 fplot 函数绘出的曲线比等分取点所画出的曲线函数绘出的曲线比等分取点所画出的曲线更加接近真实更加接近真实。fplot 函数命令的调用格式为:函数命令的调用格式为:X,Y=fplot(fun,lims)fun:函数名字符串;:函数名字符串;lims:定义:定义 x 的取值区间,的取值区间,lims=xmin,xmax;二维函数曲线专用命令二维函数曲线专
39、用命令 ezplotDr WangZhengsheng-Lecture Notes462.线型和颜色线型和颜色 plot 函数可以设置曲线的函数可以设置曲线的线段类型、定点标记和线段颜色线段类型、定点标记和线段颜色。常用的线段、颜色与定点标记参数常用的线段、颜色与定点标记参数 Dr WangZhengsheng-Lecture Notes47调用格式调用格式:plot(x,y,s),s 为类型说明参数,是字符串。为类型说明参数,是字符串。s 字符串字符串可以是三种类型的可以是三种类型的符号之一符号之一,也可以是线型与颜色和定点标记,也可以是线型与颜色和定点标记与颜色的与颜色的组合组合;如果如果
40、没有没有 s 参数参数,plot 将使用将使用缺省设置(实线,前七种颜色顺序着色缺省设置(实线,前七种颜色顺序着色)绘制曲线;绘制曲线;在当前坐标系中绘图时,每调入一次绘图函数,在当前坐标系中绘图时,每调入一次绘图函数,MATLAB将擦掉坐标将擦掉坐标系中已有的图形对象。可以用系中已有的图形对象。可以用 hold on 命令命令在一个坐标系中在一个坐标系中增加新的图增加新的图形对象形对象。注意。注意MATLAB会根据新图形的大小,重新改变坐标系的比例。会根据新图形的大小,重新改变坐标系的比例。用不同的用不同的线型和标注线型和标注来绘制两条曲线。来绘制两条曲线。t1=0:0.1:2*pi;t2=
41、0:0.1:6;y1=sin(t1);y2=sqrt(t2);plot(t1,y1,:hb,t2,y2,-g)Dr WangZhengsheng-Lecture Notes483.图形窗口的分割图形窗口的分割 有时需要在有时需要在一个图形窗口中显示几幅图一个图形窗口中显示几幅图,以便对几个函数进行直观、,以便对几个函数进行直观、便捷的比较。由于每个绘图命令在绘制数据图像时都会将已有图形覆便捷的比较。由于每个绘图命令在绘制数据图像时都会将已有图形覆盖掉,而用盖掉,而用 hold 命令不能实现同时显示几个不同坐标尺寸下的图形,命令不能实现同时显示几个不同坐标尺寸下的图形,用用 figure 命令再
42、创窗口又很难同时比较由不同的数据绘得的图像。命令再创窗口又很难同时比较由不同的数据绘得的图像。实现在实现在同一个窗口中同时显示多个图像同一个窗口中同时显示多个图像的命令的命令subplot。使用格式为:使用格式为:subplot(m,n,i)其含义为其含义为 :把图形窗口分割为:把图形窗口分割为 m 行行 n 列子窗口列子窗口,然后选,然后选定定第第 i 个窗口为当前窗口个窗口为当前窗口。subplot 命令不仅用于命令不仅用于二维图形二维图形,对,对三维图形三维图形一样适用。其本质是将一样适用。其本质是将 figure 窗口分为几个区域窗口分为几个区域,再在每个区域内分别绘图。,再在每个区域
43、内分别绘图。Dr WangZhengsheng-Lecture Notes49用用 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
44、,y,:rd)Dr WangZhengsheng-Lecture Notes504.坐标系的调整坐标系的调整 实现坐标系的调整的命令是实现坐标系的调整的命令是 axis 函数。函数。调用格式为:调用格式为:axis(xmin,xmax,ymin,ymax,zmin,zmax)坐标的最小值(坐标的最小值(xmin,ymin,zmin)必须小于相应的最大值)必须小于相应的最大值(xmax,ymax,zmax),否则会出错。),否则会出错。自动坐标系与用自动坐标系与用 axis axis 函数函数调整后的坐标系的比较。调整后的坐标系的比较。subplot(2,1,1)t=0:0.1:4*pi;y=s
45、in(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)Dr WangZhengsheng-Lecture Notes51B B、三维绘图、三维绘图 1.1.三维三维曲线曲线绘图命令绘图命令 三维函数三维函数 plot3主要用来表现主要用来表现单参数的三维曲线单参数的三维曲线,与二维绘图函数,与二维绘图函数 plot 相比,只相比,只多了多了第三维数据第三维数据。其调用格式为:其调用格式为:plot3(X1,Y1,Z1,s1,X2,Y2,Z2,s2,)参数的含义如下:参数的含义
46、如下:Xn、Yn、Zn:第一到三维数据,是:第一到三维数据,是尺寸相等的尺寸相等的向量向量/矩阵;矩阵;s、s1、s2:是:是字符串字符串,用来设置,用来设置线型、颜色、数据点线型、颜色、数据点标记。标记。Dr WangZhengsheng-Lecture Notes52x、y、z 是向量时,是向量时,plot3 命令的使用命令的使用t=0:0.1:8*pi;plot3(sin(t),cos(t),t)title(绘制螺旋线)%用命令用命令 title 对图形主题进行标注对图形主题进行标注 xlabel(sin(t),FontWeight,bold,FontAngle,italic)ylabe
47、l(cos(t),FontWeight,bold,FontAngle,italic)zlabel(t,FontWeight,bold,FontAngle,italic)%命令命令 zlabel 用来指定用来指定 z 轴的数据名称轴的数据名称 grid onx、y、z 都是矩阵时,都是矩阵时,plot3 命令的使用命令的使用X,Y=meshgrid(-pi:0.1:pi);Z=sin(X)+cos(Y);plot3(X,Y,Z)Dr WangZhengsheng-Lecture Notes53为了绘制定义在平面区域为了绘制定义在平面区域 D=x0,xmD=x0,xmy0,yn y0,yn 上的上
48、的三维曲面三维曲面z=f(x,yz=f(x,y),首先将,首先将x0,xmx0,xm在在 x x 方向分成方向分成 m m 份,将份,将y0,yny0,yn在在 y y 方方向分成向分成 n n 份,由各划点分别作平行于坐标轴的直线,将份,由各划点分别作平行于坐标轴的直线,将区域区域 D D 分成分成 m mn n 个小矩形个小矩形;对于每个小矩形,计算出;对于每个小矩形,计算出网格点的函数值网格点的函数值,决定出空,决定出空间中四个顶点(间中四个顶点(xi,yi,f(xi,yi)xi,yi,f(xi,yi)),连接四个顶点得到一个),连接四个顶点得到一个空间的四空间的四边形片边形片;所有四边
49、形片连在一起构成函数;所有四边形片连在一起构成函数 z=f(x,y)z=f(x,y)定义在区域定义在区域 D D 上上的的空间网格曲面空间网格曲面。因此,三维曲面绘图命令可分为因此,三维曲面绘图命令可分为平面网格点的生成平面网格点的生成、在平面网格基础、在平面网格基础上上绘制三维网格绘制三维网格及对及对三维表面进行处理三维表面进行处理三个步骤。三个步骤。Dr WangZhengsheng-Lecture Notes54a.a.平面网格点的生成平面网格点的生成函数命令函数命令meshgrid 用来生成用来生成 x-y 平面上的网格点矩阵。平面上的网格点矩阵。调用形式为:调用形式为:X,Y=mes
50、hgrid(x,y)X,Y=meshgrid(x)等价于等价于X,Y=meshgrid(x,x)参数含义如下:参数含义如下:x:是区间:是区间x0,xm上分划的向量;上分划的向量;y:是区间:是区间y0,yn上分划的向量;上分划的向量;X,Y:输出变量矩阵,矩阵:输出变量矩阵,矩阵 X 的行向量都是向量的行向量都是向量 x,矩阵,矩阵 Y 的列向的列向量都是向量量都是向量 y。函数函数 meshgrid 将将由两个向量决定的区域转换为对应的网格点矩阵。由两个向量决定的区域转换为对应的网格点矩阵。Dr WangZhengsheng-Lecture Notes55函数函数 ,定义区域为,定义区域为