Matlab基础知识点.doc_第1页
Matlab基础知识点.doc_第2页
Matlab基础知识点.doc_第3页
Matlab基础知识点.doc_第4页
Matlab基础知识点.doc_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MatLab讲义 2002年9月版MATLAB讲义第一章 MATLAB系统概述1.1 MATLAB系统概述MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。特点:(1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。(2)语句书写简单。(3)语句功能强大。(4)有丰富的图形功能。如plot,plot3语句等。(5)提供了许多面向应用问题求解的工具箱函数。目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。(6)易扩充。1.2 MATLAB系统组成(1)MATLAB语言MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。同时MATLAB又具有面向对象编程特色。MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。(2)开发环境MATLAB开发环境有一系列的工具和功能体,其中大部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。(3)图形处理图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。还包括低级的图形命令,供用户自由制作、控制图形特性之用。(4)数学函数库有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。(5)MATLAB应用程序接口(API)MATLAB程序可以和C/C+语言及FORTRAN程序结合起来,可将以前编写的C/C+、FORTRAN语言程序移植到MATLAB中。1.3 MATLAB的应用范围包括:MATLAB的典型应用包括:l 数学计算l 算法开发l 建模、仿真和演算l 数据分析和可视化l 科学与工程绘图l 应用开发(包括建立图形用户界面)以矩阵为基本对象第二章 Matlab基础2.1 MATLAB快速入门(1)搜索路径搜索路径也被看作是MATLAB的路径,其包含的文件被认为在路径上。搜索路径设置存放在文件pathdef.m中,称为当前目录,当要在MATLAB中打开一个文件时,就以当前目录为开始点。当输入一变量value时,MATLAB的搜索路径次序: value是否为变量 value是否为内部函数 当前目录中是否存在value.m文件 搜索路径上是否存在value.m文件path函数可以控制MATLAB的目录搜索路径,主要使用的格式: path 显示当前的搜索路径 p=path 把当前的搜索路径存到字符变量P中 path(newpath) 设置路径为newpath path(path,newpath) 向当前路径添加一个新目录addpath函数向MATLAB的搜索目录中添加一个新目录。 addpath 路径名 path(path,路径名):增加搜索路径rmpath函数从MATLAB的搜索路径删除一个目录。 rmpath 路径名:删除路径还可以利用菜单:File-setpath(路径浏览器) what:显示出搜索路径上的文件名 what路径名:路径名中的文件名 type value:显示变量内容 edit 文件名:对m文件进行编辑 (2)工作空间(Workspace)工作空间是一个重要而且比较抽象的概念,它是指运行MATLAB 程序或命令所生成和存储在内存中的所有变量和MATLAB提供的常量构成的集合。通过使用函数、运行M文件和装载保存的工作空间,可以向工作空间增加变量。l save保存整个工作空间或一部分变量,使用方式: save workspace as 文件名或 save 文件名 变量名l load恢复工作空间,使用方式:load workspaceload 文件名l 工作空间浏览器:File-Show Workspacel 还有一组命令来管理这些变量。 who,whos:显示出工作空间中的变量列表。 clear 变量名:清除变量(3)MATLAB命令窗口l 输入命令和输出结果。如输入:help 函数名 a=62.2 矩阵、变量、运算和表达式(1)矩阵的输入A直接输入:注意:(1)行元素间用空格或逗号(,)隔开; (2)行与行之间用分号(;)或回车; (3)整个元素列表用括起。直接输入的矩阵为一全局变量,一直保存在内存中。例: a=1 2 3;4 5 6 a= 1 2 3 4 5 6a=1,2,3;4,5,6;7,8,9 a=1 2 3; 4 5 6; 7 8 9矩阵元素:可以灵活地描述矩阵元素,l 矩阵元素ai,j 按列存放 通过下标单独对元素赋值例:a(1,1)=1,a(3,2)=a(1,1) 得到a = 1a = 1 0 0 0 0 1即自动形成一个3行2列矩阵,对未赋值的元素充值0。l 矩阵的元素可以用任意形式的表达式 例:算术表达式x=-1,sqrt(5),(2+7)4x =1.0e+003 *-0.0010 0.0022 6.5610l 大矩阵可以用小矩阵作为元素 例:a=1 2;3 4b=a a+5;a-5 zeros(size(a) 例:A=1,2,3;4,5,6A = 1 2 3 4 5 6B=A;7,8,9B = 1 2 3 4 5 6 7 8 9l 可以从矩阵中抽取某些元素构成新矩阵C=A(1:2,:)C = 1 2 3 4 5 6例:a=3,4,5;6,7,8b=+2,4*5,6c=sin(0.5*pi),sqrt(4),0d=a;b;cl 复数的表示MATLAB支持复数的运算,复数的虚部用i或j表示。例:a=1+2i或a=1+2j 二者表示的结果一样。复数可以直接运算,例:a=3+4i; b=5+6j a+b输出:ans= 8.0000+10.0000i复数运算的一些常用函数: abs 返回复数的模 angle 返回复数的相角 conj 返回共轭复数 imag 返回复数的实部 real 返回复数的虚部B.用语句或函数产生: a=randn(5,5) 产生正态分布5*5的随机矩阵。C.用M-文件或外部数据文件产生:M-文件是一个以.m为后缀的文本文件,文件内容为一系列MATLAB命令,在MATLAB环境下键入该文件名(不包括后缀),文件中的全部命令会依次逐个执行;M-文件名(不包括后缀)相当于一个宏命令.例如:一个名为magik.m的文件包含了如下的内容,(假设magik.m在当前目录下)A = 16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0 在Matlab环境下执行如下命令:magikAA = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 D.用矩阵编辑器创建和修改矩阵:使用File-Show workspace(2)矩阵运算运算符 +,-,*,/(右除),(左除) 和(幂)。右除:C=A/B即C满足CB=A,当B可逆时,A/B=AB-1 左除:C=AB即C满足AC=B,当A可逆时,AB=A-1B 幂An = A*A; A必须是方阵。例:矩阵的加减法: a=1:3;4:6;7:9 b=a; c=a+b; c=a-b 注:矩阵相加减必须有相同的维数。例:矩阵的点乘运算,运算时矩阵必须为方阵,且只能与数字运算。 d=a*b 必须符合m*n与n*l的结构。 d=a.*b 矩阵的点乘运算例:(左除):AB=inv(A)*B,其中inv(A)表示A逆阵,例如求解AX=B。 A=1 0 0;0 4 0;0 0 9; B=1 2 3;0 1 0;0 1 1; X=AB /(右除): A/B=A*inv(B),例如求解XA=B。 X=B/A(3)变量与表达式l Matlab的赋值语句有两种形式:其一为:=表达式;其二为:表达式,将表达式的值赋于一个自动定义的变量ans。注:A:如果以;结尾,则不显示计算结果,否则显示计算结果。 B:除保留字外,变量可以用字母开头,后跟19个字母或数字。变量名区分大小写,变量使用时不需要先定义,也不必定义变量的类型。l 可以用who或whos来显示已定义的变量例如:whoYour variables are:A B C a ans whos Name Size Bytes Class A 2x3 48 double array B 3x3 72 double array C 2x3 48 double array a 3x2 48 double array ans 1x1 8 double arrayGrand total is 28 elements using 224 bytesl 一些常用的变量pi 3.14159265 /值i sqrt(-1 ) /虚数单位j same as i eps floating-point relative precision, 2.2204e-016 /容量变量realmin smallest floating-point number, 2.2251e-308 /最小浮点数realmax largest floating-point number, 1.7977e+308 /最大浮点数inf infinity (任意一个非零数除以0) /正无穷大nan Not-a-number (0/0 或inf-inf) /非数 如:r=1/0r=inf1/rans=0(4)矩阵的其他简单运算: A: 矩阵转置 inv(A):A-1 sum(A):得到一个行向量,其元素为A的每一列的和a=1 2 3;4 5 6sum(a) sum(a) diag(A):得到一个列向量,其元素为A的对角元sum(diag(a) 冒号(:)运算符: a:b:c:生成一个由等差数列构成的行向量X,X(i+1)-X(i)=b例:0:pi/4:pians = 0 0.7854 1.5708 2.3562 3.1416 如果省略b,则等差数列的公差为1a=0:0.05:1x=linspace(0,1,75)a=1:4;b=1:2:7;c=b,a 等比数列:logspace(0,2,11) 创建起点为10,终点为102,11个元素,公比为100.2 矩阵的变换:rot90: 矩阵逆时针旋转n*90度。 fliplr: 矩阵左右翻转。 flipud: 矩阵上下翻转。 稀疏矩阵的存储: sparse(A):用于把完全矩阵压缩为稀疏矩阵。 A=0,1,0,0;0,3,0,4;5,0,0,0;0,0,0,7 sparse(A) ans= (3,1) 5 (1,2) 1 (2,2) 3 (2,4) 4 (4,4) 7 sparse(i,j,u):函数直接造成稀疏矩阵,i,j为向量分别对应行号和列号,u也为向量,存储非元素的值. i=1,2,2,3,4 j=2,2,4,1,4 u=1,3,4,5,7 A=sparse(i,j,u) full函数把稀疏矩阵还原为完全矩阵。(5)数组及其运算: 数组可以看作是行向量,实质为阵列运算。是元素对元素的运算,用句号(.)来区别。 数组和矩阵之间的区别在于运算规则不同,矩阵运算由线性代数规则来定义。 运算符:+,-和.*, ./, .,. A.*B:A与B对应的元素相乘 A.B:B的元素除以A的相应元素 A./B: A的元素除以B的相应元素 A.B:A的元素为底,B的相应元素为幂的数组 如:a=1:3;4:6;7:9 b=a; c=a+b; c=a-b 查看下列运算的结果: a*b a.*b a/b a./b ab a.b ab(指数和底数均为矩阵,无法求解) a.b a a.2.3 基本数学函数abs(绝对值或复数模)sqrt (平方根)real(复数的实部)imag (复数的虚部)conj(复数的共轭)round (舍入为最接近的整数) /round(-0.5)=-1 round(0.4)=0fix (向0方向舍入为整数) /fix(0.99)=0 fix(1.01)=1floor (向负无穷大舍入为整数) /floor(-0.5)=-1 floor(0.5)=0ceil (向正无穷大舍入为整数) /ceil(-0.5)=0 ceil(0.6)=1sign (符号函数)rem(x,y) (取余数函数) /得到x/y的余数,rem(11,4)=3sin cos tan asin atan /三角函数都是面向阵列中的元素操作,角度单位均为弦度。atan2(y,x) /-pi = atan2(y,x) = pisinh (双曲正弦) cosh tanhexp (以e为底的指数)log (自然对数)log10 (常用对数)bessel (贝塞尔函数)gamma (伽码函数)rat (无理数的分式有理逼近)N, D = rat(x,tol), 要求:abs(x-N/D)=tol*abs(x), tol的缺省值为tol = 1.e-6*norm(X(:),1) 其中:norm( X ( : ),1) = max(sum(abs(X)2.4 关于矩阵的一些有用的工具产生矩阵的工具:l 表示空矩阵空矩阵不包含任何元素,它的维数为0*0;空矩阵可以在运算中传递。例:A=1,2,3;4,5,6;7,8,9A(2,:)=输出:A= 1 2 3 7 8 9空矩阵有矩阵缩维的作用。l eye:单位矩阵:对角线元素为1。 A=eye(3,3) A= 1 0 0 0 1 0 0 0 1l zeros:所有的元素都是0Z = zeros(2,4)Z = 0 0 0 0 0 0 0 0l ones:所有的元素都是1Z= 5*ones(3,3)Z = 5 5 5 5 5 5 5 5 5l rand: 矩阵元素是用均匀分布在0.0,1.0内产生的随机数l rand(n):产生一个n阶(0-1)的随机矩阵Z=rand(3)Z = 0.1094 0.6599 0.1785 0.9888 0.3514 0.3573 0.5860 0.8495 0.5347 rand(m,n): 产生一个m*n阶(0-1)的随机矩阵Z=rand(1,6)Z = 0.5976 0.4628 0.7678 0.5902 0.3969 0.1927 产生-a,a之间均匀分布的随机数的公式:R=a-2*a*rand(m,n)l randn:矩阵元素是用期望为0,方差为1的正态分布产生的随机数Z=randn(3)Z = -0.4326 0.2877 1.1892 -1.6656 -1.1465 -0.0376 0.1253 1.1909 0.3273 产生均值为b,方差为q2的正态分布随机数的公式:S=q*randn(m,n)+bl 其它特殊矩阵:例:a=1 2 3;4 5 6;7 8 91diag(a) % 生成矩阵a的对角矩阵ans = 1 5 92compan:伴随矩阵例:u = 1 0 -7 6A = compan(u)A = 0 7 -6 1 0 0 0 1 0eig(compan(u)ans = -3.0000 2.0000 1.0000即方程的根。3magic:魔方矩阵(矩阵的元素由110组成,行、列和对角线之和相等)例:magic(5)ans = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 94tril(a) % 生成矩阵a的下三角矩阵ans = 1 0 0 4 5 0 7 8 95triu(a) %生成矩阵a的上三角矩阵ans = 1 2 3 0 5 6 0 0 9注:1.下标引用:在Matlab中,矩阵元素的引用可用两个下标来表示,如矩阵A中,第i行第j列的元素用A(i,j)引用,也可以用一个下标来表示,用单个下标表示元素并不只限于矢量。对于矩阵,由于Matlab的运算基本上都是对列操作的,矩阵可以认为是按列优先排列的一个长的列矢量,从而可用单下标引用。例如2*2的矩阵,A(1)表示第一列的第一个元素,A(2) 表示第一列的第二个元素,A(3)表示第二列的第一个元素,A(4)表示第二列的第二个元素,当矩阵的下标超出矩阵的实际元素的下标时,将给出错误信息。但是,当某个值被赋给矩阵的一个新的元素时,Matlab会自动增加矩阵的维数大小。例如4*4的矩阵A,执行命令A(4,5)=17后,矩阵A将变成4*5的矩阵。在下标的表达式里使用冒号表示矩阵的一部分。例如矩阵A(1:k,j)表示矩阵A的第j列的前k个元素。例如sum(a(1:4,4),表示计算第四列的前四个元素元素的和。A(:,j)表示矩阵A的第j列的所有元素。由于有了冒号运算符,例如求矩阵A的第j列元素之和 ,表示式为sum(A(:,j)。2如何建立多维矩阵:在科学研究与工程运算中,要建立多维矩阵,方法之一是扩展二维矩阵。例:先建立一个简单的二维矩阵:a=5 7 8;0 1 9;4 3 6为a矩阵扩展第三维a(:,:,2)=1 0 4;3 5 6;9 8 7方法之二,使用cat函数。它将现有的矩阵按照指定的维数建立新的多维矩阵。B=cat(dim,A1,A2,.)例:b=cat(3,2 8;0 5,1 3;7 9)2.5 复杂的矩阵运算一些矩阵运算:size(A): 得到矩阵的阶,得到矩阵的n行m列.rank(A): 得到矩阵的秩det(A): 行列式eig(A): 特征值和特征向量e=eig(A) 得到特征值v,d=eig(A): A*v=v*dsvd(A): 矩阵的奇异值分解u,s,v=svd(A), u,v正交阵,s对角阵,A=usvcond(A):得到矩阵的条件数 (最大奇异值和最小奇异值的比值)lu(A): LU分解(A必须是一个方阵)l,u=lu(A): u上三角阵,l:一个下三角阵和一个置换矩阵的积l,u,p=lu(A):u上三角阵,l:下三角阵,p:置换矩阵qr(A): QR分解q,r=qr(A):r:上三角阵,q:正交阵2.6 矩阵输出格式格式命令(数字)X=4/3 1.2345e-6;format short:以定点数形式显示,小数后面保留4位有效数字XX = 1.3333 0.0000format short e:以浮点数形式显示,小数后面保留4位有效数字XX = 1.3333e+000 1.2345e-006format short g:以定点数或浮点数的最佳形式显示,小数后面保留4位有效数字XX = 1.3333 1.2345e-006format long:以定点数形式显示,小数后面保留14位有效数字XX = 1.33333333333333 0.00000123450000format long e 以浮点数形式显示,小数后面保留14位有效数字XX =1.333333333333333e+000 1.234500000000000e-006format long g 以定点数或浮点数的最佳形式显示,小数后面保留14位有效数字XX = 1.33333333333333 1.2345e-006format bank 以货币方式显示XX = 1.33 0.00format rat 用有理数近似表示XX = 4/3 1/810045format hex 用16进制表示XX = 3ff5555555555555 3eb4b6231abfd271format compact 以紧凑形式显示 (format loose 以松散形式显示)XX = 3ff5555555555555 3eb4b6231abfd271长命令行 用“”来表示连接 第三章 图形在分析问题的结果的时候,图形往往是一种很有用的工具,它可以帮助我们直观地了解结果的某些性态。Matlab提供了很强的图形功能,能够在根据向量或矩阵给定数据来生成图形。Matlab图形有数据可视化和图形处理两大功能,在数据的可视化部分,Matlab可使用户计算所得的数据根据其不同情况转化成相应的图形。用户可以选择直角坐标、极坐标等不同的坐标系;它可以表现出平面曲线、空间曲线,绘制直方图、向量图、柱状图及空间网状面图、空间表面图等。图形函数有4种:通用图形函数、二维图形函数、三维图形函数、特殊图形函数.建立一个图形的步骤:步 骤典型代码1)准备数据x=0:0.2:12y1=bessel(1,x);y2=bessel(2,x);y3=bessel(3,x);2)选择窗口,决定绘图位置figure(1)subplot(2,2,1)3)调用基本绘图函数h=plot(x,y1,x,y2,x,y3);4)设置绘图线条样式和标记set(h,LineWidth,2,LineStyle,.-;:;-.set(h,Color,r;g;b)5)设置坐标轴范围、刻度和栅格线axis0 12 -0.5 1)grid on6)标记图形坐标轴、图形图例以及其它文字xlable(Time)ylable(Amplitude)legend(h,First,Second,Third)title(Bessel Functions)y,ix=min(y1);text(x(ix),y,First Minrightarrow.HoizontalAlignment,right)7)打印图形print -dps23.1 图形窗口图形窗口(Figure Window)是所有Matlab的图形输出的专用窗口。figure:用来打开一个绘图窗口,以供后续绘图命令输出图形。创建图形窗口的命令:figure两种格式:figure figure(n)图形窗口的名称是按照该窗口创建的时间顺序依次命名的:Figure No.1,Figure No.2.Figure No.n,命令figure将创建一个名为figure No.n+1的新的空白图形窗口,而figure(n)命令则若figure No.n窗口已存在,则成为当前窗口。h=figure(n)可得到图形窗口的句柄。两个查阅图形参数和参数值的命令:get(n):get(n)将返回关于图形窗口 Figure No.n 的所有图像参数的名称和当前值。set(n):set(n)将返回关于图形窗口 Figure No.n 的所有图像参数的名称和其可能取的值。3.2 创建二维图形(Plot函数)Plot是最简单而且使用最广泛的一个线型绘图函数,是Matlab的内部函数。作用:可以生成线段、曲线和参数方程曲线图形。几种基本命令形式:(1)向量式:plot(v)参数v可以是向量、实数阵和复数阵。v是长度为n的数值向量,生成(i,v(i)的一条折线,坐标轴的范围由MATLAB系统根据向量的长度元素的大小自动生成,当向量的元素充分多时,即可以得到一条外观光滑的曲线。例:x=0:pi/20:2*pi;plot(x)例:x=peaks;plot(x)(2)参数式:plot(x,y)x,y都是长度为n的向量,它的作用是在坐标系中生成顺序连接顶点x(i),y(i)的折线,绘得的连线图以x为横坐标,y为纵坐标。这种调用可以用来生成参数方程的图形。例:y=sin(x);plot(x,y)例:x1=0:1:10*pi;x2=0:0.01:10*pi;y1=sin(x1).*x1;y2=sin(x2).*x2;plot(x1,y1)hold onplot(x2,y2)(3)矩阵式:plot(y)y是一个(m*n)和矩阵,为矩阵的每一列画出一条线。同时以矩阵的行向量为基准对x轴进行分度和标注,标准时,采用向量1:m,这里m中矩阵的行数。例:z=peaks; %产生一个49*49的矩阵 plot(z)(4)混合式:plot(x,y)如果X,Y均为向量,则长度必须相等,亦即参数式;如果X是向量,而Y是一个矩阵,X的长度与矩阵Y的行数或列数相等,则它的作用是将向量X与矩阵Y的每列或每行的向量相对应作折(曲)线,当Y是方阵时,则将向量X与矩阵Y的列向量相对应作图;如果X是矩阵,Y是向量,Y的长度等于X的行数或列数,则将X的每列或每行的向量与Y相对应作图。同样,当X是方阵时,则将X的各列与Y相对应作图;如果X和Y都是矩阵,且维数相同,那么按列与列的对应方式来作图。例:y=1:length(peaks);plot(peaks,y)(5)复向量式:plot(z)z为复向量 ,会忽略向量的虚部,相当于plot(real(z),imag(z)例:随机矩阵特征值分布plot(eig(real(20,20),o,Markersize,6)(6)综合调用:plot(x1,y1,x2,y2,.)矩阵中有多个矩阵调用对,其中的每一对按前四种方式之一进行调用,不同的矩阵对之间,其维数可以不同。例:t=0:pi/10:2*pi;y1=sin(t);plot(t,y1);可以使用plot同时显示由若干个x-y对表示的图形:y2=sin(t-0.5);y3=sin(t-0.25);plot(t,y1,t,y2,t,y3);从图上我们可以看出,为了体现不同x-y对表示的图形,Matlab自动地使用了不同的颜色;此外我们还可以使用如下格式来设置图形的性态。3.3 线型、顶点标记和颜色在调用plot函数时MATLAB自动安排作图的线型的线段的颜色,包括线段顶点的标记。事实上,MATLAB 的plot函数可以设置和管理曲线的线段类型、顶点标记和颜色(在MATLAB中,它们通称为线型Line Style)。MATLAB定义的线段类型、顶点标记和线段颜色如下表:颜色(color)线型顶点标记(style)顶点标记(marker)类型符号类型符号类型符号黄色y实线-实点标记.洋红色m点线:圆圈标记O蛋青色c点虚线-.乘号标记XX红色r虚线-加号标记+绿色g星号标记*蓝色b方块标记s白色w钻石形标记d黑色k向下的三角形标记V向上的三角形标记向左的三角形标记五角星标记p六边形标记h注:1.连接节点的线型如果空缺则表示点与点之间没有直线相连; 2如果不指定作图的颜色,自动循环使用y,m,c,r,g,b,w 7种颜色画线plot的最典型的调用方式是三元组参数: plot(x,y,color-style-marker)例:plot(t,y,b+, t, y2,k-X, t,y3,r-*)例: x,y,z=peaks; /多输出函数,函数可产生多个输出值,输出值之间用逗号分开。contour(x,y,z,20,k)hold onpcolor(x,y,z)shading interp其中:peaks:根据Gauss分布(正态分布)得到3个49阶矩阵 contour:用相同的颜色画20条等高线, pcolor:将(x,y)点上的颜色设置成z shading interp:设置渲染方式,例:x=0:0.25:5; y1=x.0.1; y2=x.0.5; y3=x.0.8; y4=x; y5=x.1.5; y6=x.2; y7=cos(x); y8=sin(x); hold on plot(x,y1,yo,x,y2,mx,x,y3,c+,x,y4,rs); plot(x,y5,gh,x,y6,bd,x,y7,w,x,y8,kp);3.4 subplot 函数在一个已存在图形的绘图窗口中增加一个图形(在这之前讲的都是覆盖方式)hold on,加到图形上,hold off则取代当前窗口。允许在同一绘图窗口中显示或在同一纸上打印多个图形。subplot(m,n,p):将一个绘图窗口分割成m*n个子窗口,每一小块有自己的坐标轴,p为活动窗口,并且在p个窗口绘制当前图形,如果坐标系已存在,则subplot(p)设置当前坐标系。例如:t=0:pi/10:2*pi;x,y,z=cylinder(4*cos(t);% (生成一个单位圆柱体,采用0,1之间的等距节点,每一个节点的旋转半径是4*cos(t), 相当于4*cos(t)母线CYLINDER(R,N), CYLINDER(R)(此时, n=20)subplot(2,2,1); mesh(x) %(x=1:m, y=1:n, z=x, c=x)subplot(2,2,2); mesh(y); subplot(2,2,3); mesh(z);subplot(2,2,4); mesh(x,y,z)subplot(111)是个特殊的情况,与subplot(1,1,1)不同,它使下一条绘图指令在窗口中执行elf和reset指令(即删除当前图形的所有子对象),然后在默认位置创建一个坐标系。绘制复数图形:plot(z) plot(real(z), imag(z)例如:t=0:pi/10:2*pi;plot(exp(i*t),-o)3.5 坐标轴控制 axis函数axis函数可控制坐标轴的刻度,使两个图形在对比时,有相同的比例因子。也可用于复杂图形的局部透视。axis命令的格式:axis(xmin xmax ymin ymax) 设置X,Y轴的极限范围axis square: 保持X,Y轴axis equal: 设置X,Y轴等长axis auto: 设置X,Y轴为自动格式axis on 显示X,Y轴axis off 关闭X,Y轴grid off 图形网格不显示grid on 图形网格显示例:复杂函数的局部透视,利用axis函数调整x轴刻度,可以比较清楚地看到某一局部区域。x=0:1/3000:1;y=cos(tan(pi*x);figure(1),subplot(2,1,1),plot(x,y)title(复杂函数)subplot(2,1,2),plot(x,y)axis(0.4 0.6 -1 1);title(复杂函数的局部透视)例:利用axis square使输出图形的保持x,y轴,这样在图形窗口中绘制圆或椭圆都可用圆来表示。t=0:pi/20:2*pi;figure(1),subplot(2,2,1),plot(sin(t),cos(t)title(圆形轨迹)subplot(2,2,2),plot(sin(t),2*cos(t),title(椭圆形轨迹)subplot(2,2,3),plot(sin(t),cos(t),axis square title(调节后的圆形轨迹)subplot(2,2,4),plot(sin(t),2*cos(t),axis squaretitle(调节后的椭圆形轨迹)坐标标题及图中的文本使用函数:xlabel、ylabel、zlabel、text、title。说明:(1)xlabel、ylabel、zlabel为x,y,z轴的标记。(2)text在当前坐标系中建立文本对象。 格式:text(x,y,string) 在图形的(x,y)点上放置指定的字符串。 text(.,PropertyName,PropertyValue,.)为标题文本指定特性。 特征为:表示为上标、_为表示下标、leftarrow表示为rightarrow表示为it斜体文字arrow表示箭头bottom表示上下箭头。 text(x,y,z,string) 在三维图形上放置文字 text(x,y,string,color,k) 放置文字的同时设置颜色。例: t=-pi:pi/100:pi; y=sin(t); plot(t,y) axis(-pi pi -1 1) xlabel(-pi leq itt leq pi) ylabel(sin(t) title(Graph of the sine function) text(1,-1/3,itNote the odd symmetry,color,r)(3)gtext与text的不同是可利用鼠标放置文本。例: t=-pi:pi/20:pi; y1=sin(t);y2=2*cos(t); plotyy(t,y1,t,y2),grid on title(双Y轴正弦曲线) gtext(sin(t) text(pi/2,0,leftarrow 2cos(t)(4)plotyy:双Y轴的图形,同一张图上表示两条曲线时,可拥有各自的Y轴。(5)title给当前坐标系加上标题。例:在同一张图上绘制出双y轴的y1=sin(x)和y2=2cos(x)函数。x=-pi:pi/20:pi;y1=sin(x);y2=2*cos(x);plotyy(x,y1,x,y2);grid ontitle(双y轴正余弦曲线)text(0,0,leftarrow sin(t)text(pi/2,0,leftarrow 2cos(t)3.6 专门用于绘制一元函数曲线的命令fplot在plot命令中,系统是将从外部输入或间接确认的数值矩阵转化为连线图的。而在实际应用中绘制函数的二维曲线时,一般并不清楚函数的具体情况,因而在确定自变量x的取值间隔时,往往一律用平均间隔,这样往往不大准确。取好了,可以表现出函数图像的大概情况,取差了,则会因某处x元素的间隔太大而根本错绘了曲线,不能反映出函数的变化情况从而使绘图失败。fplot不是直接从外部接收数据,而是通过其内部自适应算法而产生的。即在函数值变化比较平稳处,它所取的数值点就会自动相对稀疏一些,在函数值变化剧烈处,所取有数值点就会自动密集一些。所以对于曲线起伏剧烈的函数,用fplot命令将比用一般等间距取点的plot命令绘得的曲线光滑准确一些。fplot命令的具体使用格式为: fplot(function_name,limits,tol,linespec,p1,p2,.) x,y=fplot(function_name,limits,tol,linespec,p1,p2,.)其中:function_name:待绘制函数曲线的函数名称 limits :limits=xmin,xmax,为x的取值空间 tol :为fplot命令在进行运算中的相对误差。tol越小,所绘得的曲线就越接近实际曲线的情况,但系统要为此占用很大的资源。 linepsec : 线型设置 p1,p2. : 函数传递的参数 x,y :输出数据点坐标例:fplot与plot命令的比较。function y=funfplot(x)y=sin(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论