matlab基础(海大版).ppt

上传人:小飞机 文档编号:5439058 上传时间:2023-07-07 格式:PPT 页数:209 大小:1.68MB
返回 下载 相关 举报
matlab基础(海大版).ppt_第1页
第1页 / 共209页
matlab基础(海大版).ppt_第2页
第2页 / 共209页
matlab基础(海大版).ppt_第3页
第3页 / 共209页
matlab基础(海大版).ppt_第4页
第4页 / 共209页
matlab基础(海大版).ppt_第5页
第5页 / 共209页
点击查看更多>>
资源描述

《matlab基础(海大版).ppt》由会员分享,可在线阅读,更多相关《matlab基础(海大版).ppt(209页珍藏版)》请在三一办公上搜索。

1、1,HaiNan University,MATLAB 基础篇,海南大学数学系 王浩华,2,第一章 MATLAB语言概述,1.1 MATLAB发展简史1.2 MATLAB的特点1.3 MATLAB工作环境与实例1.4 演示程序及帮助,3,1.1 MATLAB发展简史,一、MATLAB的开发单位:美国Mathworks公司,Cleve Moler博士,二、几个不同的发展时期,70年代末,Cleve Moler为讲授矩阵理论和数据分析编写了Linpack与Eispack软件包。1984年,成立公司Mathworks,推出第二代MATLAB。内核用C编写。,4,1990年,推出系统仿真工具Simuli

2、nk。1993年,Matlab 4.0Windows版。1994年,Matlab 4.2开始广受重视和应用。1999年,Matlab 5.332位运算。2000年11月,Matlab 6.0。2001年5月,Matlab 6.1。2002年8月,matlab 6.5 加入JIT加速器。,5,1、一个变量可以直接当作一个矩阵。*2、一个元素可以直接当作一个复数。*3、用解释方式对程序加以执行。4、数据可以通过MATLAB绘图功能实现可视化,最复杂的可视效果可以是三维坐标中的立体曲面图。,1.2 MATLAB的特点,6,5、不仅能进行数值运算,还能进行符号运算及系统仿真。6、有多达30多个工具箱:

3、例如:自动控制、信号处理、图像处理、模糊逻辑、神经网络、小波分析、通信模拟、数理统计、偏微分方程、最优化问题、财政金融分析等。,7,7、与其他语言程序或应用程序有方便的接口。例如:C、Fortran、Word等。8、大量繁杂的数学运算和分析可调用MATLAB的函数直接求解。9、“教育部全国计算机专业课程指导委员会”已将MATLAB作为推荐课程。,8,1.3 MATLAB工作环境与实例,一、工作环境1、MATLAB打开后缺省的工作窗口有5个:*Command Window(命令窗口)Launch Pad(发射台)Workspace(工作空间)Command History(命令历史记录)Curr

4、ent Directory(当前目录),9,2、程序编辑调试执行过程中还要用到的窗口有:Figure Window(图形窗口)File Editor(文本编辑窗口)Demos Window(演示窗口)Array Editor(数组编辑器窗口),10,3、各种窗口的统一操作方法,窗口的放大和离港(undock),11,窗口的进港(dock),12,窗口的显示和排列,13,窗口中内容的清除,14,4、命令窗口(Command Window),作用:输入:数据、命令、表达式、语句 执行:命令、语句、函数、程序 编辑:命令、表达式、语句 命令提示符:5、发射台窗口(Launch Pad)作用:打开各种

5、工具箱的帮助、Demos窗口和其它相关文件或应用程序。,15,6、工作空间窗口(Workspace),作用:显示和留存变量、数组、矩阵的数据。在以文件方式保存之前,“工作空间”实际是内存的一个区域;保存之后,则成为外存中的一个数据文件(扩展名.mat)。操作:查看与清除工作空间中的变量 who whos(注意大小写)数组内容的显示和编辑(可结合数组编辑器窗口),16,保存工作空间:用file菜单或save命令,加载工作空间:用file菜单或load命令,17,7、命令历史记录窗口(Command History),作用:记录并显示已执行过命令。记录每次启动的时间。查找曾用过命令,再次调用该命令

6、。8、当前目录窗口(Current Directory)说明:显示当前工作的文件夹路径 可以修改、重设当前路径(用菜单或path命令),18,MATLAB的路径搜索原则:,在命令窗口的命令提示符后输入一个字符串如master,MATLAB将按以下顺序开始搜索:把master当作一个变量进行搜索,在当前工作空间中查找变量master。把master作为一个内置函数进行搜索,查找内置函数master并执行。查找当前文件夹中的master.m文件。查找当前搜索路径中的M文master.m。,19,MATLAB文件类型,20,9、文本编辑窗口(file Editor),MATLAB的程序编制和运行方式

7、:命令行方式 M文件方式如何获得文本编辑窗口?方法一:在命令提示符后输入edit命令。方法二:利用命令窗口的File|New|M-file命令。方法三:利用命令窗口中的新建文件图标。使用:与Word相似。,21,10、图形窗口(Figure),作用:用图形展示数据、函数、方程。如何得到:在命令窗口的提示符后输入:figure或 figure(3)。执行一条绘图命令。11、数组编辑器窗口(Array Editor)作用:对已定义过的数组进行重新编辑或修改。如何得到:双击工作空间窗口中的数组名即进入此窗口。,22,二、实例,例一:求y=sin(ax)的导函数。syms a x;y=sin(a*x)

8、;dy=diff(y)例二:绘制函数f(x,y)=2sin()/的图形。x=-8:0.5:8;y=x;X,Y=meshgrid(x,y);R=sqrt(X.2+Y.2)+eps;Z=2*sin(R)./R;surf(X,Y,Z),23,1.4 演示程序及帮助,一、演示程序1、什么是演示系统 演示系统实质是一种帮助系统;与一般帮助系统不同之处是它用实例而非文字来说明用法。2、如何进入演示窗口*方法一:在命令窗口中输入demo或demos命令。方法二:利用任一窗口Help菜单的Demos命令。方法三:利用发射台窗口。3、演示主题,24,二、帮助系统,1、如何进入帮助系统 方法一:利用任一窗口“He

9、lp”菜单。方法二:利用发射台窗口。2、帮助菜单,25,第二章 MATLAB数值计算,2.1 基本概念2.2 矩阵的创建与保存2.3 矩阵的下标与子矩阵2.4 矩阵运算与数组的运算2.5 矩阵运算函数与数学函数2.6 关系运算及逻辑运算2.7 多项式及其运算,26,MATLAB的数值计算主要是针对两类对象的运算:一是矩阵,另一是数组。矩阵是 MATLAB 进行数值运算的基本对象,或者说默认对象。不论是标量、向量、还是矩阵,MATLAB一概以矩阵视之。数组从数的集合的角度去认识,它也是矩阵,或者反过来,矩阵也是数组。单从形式上是不能区分数组和矩阵的,MATLAB 中数组与矩阵的真正区别所在是它们

10、各自采用了不同的运算规则。,27,2.1 基本概念,1、变量和标量*变量是MATLAB保存数据的工具。变量有数值和字符两种:a=365;b=happy new year 变量命名遵守如下规则:必须以字母开头。可以由字母、数字和下划线共同组成。区分大小写。长度不超过19个。标量是相对于向量的概念,一个单一的数字量即是标量。,28,系统默认的预定义变量,29,2、数值,每一个数据元素都是用双精度来表示、存储和运算。有效数字:16位。数值范围:10-30810+308格式:屏幕显示方式:紧凑(Compact)和松散(Loose)其中,Loose为默选方式。数字显示格式:MATLAB6.1共有10种之

11、多,如下 列表所示。,30,数字显示格式列表,注意:不论数字采用上述列表中何种显示格式,但其存储数据的格式依然是双精度格式,因而数据的精度依然得到保证。,31,3、矩阵与向量,矩阵是一个数学概念。向量也是一个数学概念,向量是一行或一列的矩阵。矩阵的数学运算规则是MATLAB的矩阵运算规则的一部分。矩阵的线性相加减矩阵的数乘(与标量乘)矩阵与向量(一维列向量或行向量)相乘矩阵与矩阵相乘矩阵与矩阵求逆或相除矩阵的各种变换,32,MATLAB在一般矩阵的数学运算规则之外还定义了的一些新的矩阵运算规则。矩阵的幂运算*矩阵的开方运算 矩阵的指数运算 矩阵的对数运算矩阵在MATLAB中是当作一个整体进行运

12、算。*MATLAB把所有的数量(包括标量、向量、矩阵)统一当作矩阵对待。,33,4、数组,数组是程序设计语言中用到的一种数据结构,不是数学概念。数组是由一组类型相同的数据构成的有序数据集合。在一般程序设计语言中,程序通过循环语句对数组中的元素进行操作。不是作为一个整体进行操作。MATLAB语言中的数组与一般程序设计语言有别。在MATLAB中数组运算是一个整体运算,但又与矩阵运算有区别。*矩阵可以视为数组来运算,数组也可视为矩阵来运算。矩阵运算是通过运算符与数组运算相区别。,34,5、函数,函数实际是系统提供的、已事先编写好的、一组可供调用的程序。MATLAB的函数与其他语言的函数无太大区别,只

13、是它的函数比我们熟知的任何其他语言的函数都多得多。函数的调用格式是:函数名(参数)例 a=sin(b)其意为计算b的正弦值,并将此值赋给变量a。,35,6、运算符,MATLAB的运算符分成如下几大类:算术运算符,关系运算符,逻辑运算符和特殊运算符。各类运算符列表如下:,36,MATLAB算术运算符(表一),37,MATLAB算术运算符(表二),38,MATLAB关系运算符和逻辑运算符,39,MATLAB的特殊运算符,40,7、MATLAB的语句,MATLAB语句有两种形式:表达式 变量=表达式表达式由变量、常数、函数和运算符构成。合法表达式举例:4*sin(2*t)sqrt(2)*exp(-i

14、*4)s*a+b/c,41,在MATLAB中,矩阵可以通过下列三种方法之一创建:直接输入法;利用MATLAB的内部函数创建;从外部数据文件(*.mat)装载并创建阵。,2.2 矩阵的创建与保存,42,2.2.1 直接输入法创建矩阵,直接输入矩阵数据时,必须遵循下列规则:矩阵的所有元素必须放在方括号 内;矩阵元素之间必须用逗号“,”或空格分开;矩阵行与行间用分号“;”或按回车键分隔;矩阵元素可以是任何不含未定义变量的表达式。例:(见操作)。*,43,MATLAB系统提供有创建下列基本矩阵的函数:ones(n)、ones(n,m),产生1矩阵的函数。zeros(n)、zeros(n,m),产生0矩

15、阵的函数。rand(n)、rand(n,m),在01之间均匀分布的随机数矩阵。randn(n)、randn(n,m),符合正态分布的随机数矩阵。eye(n),产生n阶的单位矩阵。,2.2.2 利用MATLAB函数创建矩阵,44,MATLAB 有专门的文件用来保存数据,如前所述其文件扩展名为.mat。而这些以文件方式保存在外存中的数据,不论是普通变量,还是矩阵都可再次被调入内存重新使用。save 路径文件名 变量名表 load 路径文件名,2.2.3 利用外部数据文件保存和装载矩阵,45,向量作为矩阵的一种特例,可以用前述介绍的三种方法进行创建。还可用下述两种方法生成。利用冒号:运算生成向量 例

16、:a=m:n a=1:10 a=m:p:n a=1:0.2:2利用函数生成向量 例:linspace(m,n)linspace(m,n,s)linspace(0,10,5),2.2.4 向量的生成,46,2.3 矩阵的下标与子矩阵,在MATLAB系统中,矩阵(或数组)的元素都可以通过其下标来引用。其一般形式如A(i,j)。矩阵下标的行号和列号都从1开始,与C语言从0开始有所不同。例如A(1,1)表示矩阵A首行首列的元素。生成子阵举例:A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16;x=2,4;y=1,3;B=A(x,y)B=A(2,4,1,3)D=A(:,y)

17、D=A(:,1,3)E=A(x,:)E=A(2,4,:),47,矩阵运算和数组运算是MATLAB数值运算的两大类型。矩阵运算按矩阵的运算规则进行,而数组运算则按数组的运算规则进行。矩阵运算和数组运算的运算规则已经在前面的2.1节的运算符中作过简单的介绍。在MATLAB中,可以对矩阵进行数组运算,此时矩阵被视为数组,运算按数组运算规则进行。在MATLAB中,可以对数组进行矩阵运算,此时数组被视为矩阵,运算按矩阵运算规则进行。,2.4 矩阵运算与数组运算,48,2.4.1 矩阵加减与数组加减,矩阵的加减法的规则与数组没有区别,运算符也相同,可分成如下两种情况:若参与运算的两矩阵的阶数相同,则加减运

18、算是对应元素相加减,其结果与任一参与运算的矩阵的阶数相同。若参与运算的两矩阵的阶数不同,只能是其中之一为标量,运算规则是把标量加减到矩阵的每一元素上,其结果是与参与运算的矩阵同阶的矩阵。,49,2.4.2 矩阵乘与数组乘,矩阵的乘法运算中包含有普通标量乘、向量乘与矩阵乘。例:a=3;b=6;ca=a*b,cb=b*a ca=cb?a1=2;b1=1 2 3;c1a=a1*b1,c1b=b1*a1 c1a=c1b?a3=1 2 3;3 2 1;2 3 1;d1=a1*a3,d2=a3*a1 d1=d2?a2=2;3;2;b2=1 3 2;c2=a2*b2(矩阵);c22=b2*a2(数)a22=

19、2 3 2;c2a=a22*b2,c2b=a2*a2 b3=2 3 1;4 3 2;3 2 1;b2*b3 b3*b2,50,c3=a3*b3;c33=b3*a3,c3 c33a4=1 2 3 4;3 1 4 5;4 3 2 1;b4=1 2 3;4 3 2;5 3 2;1 2 3;c4=a4*b4,c44=b4*a4真正的矩阵(或向量)乘,要求参与运算的矩阵内阶相同。不满足普通数(标量)乘的交换律,即A*BB*A。,51,数组乘是MATLAB规定的一种运算。例:a=3;b=6;ca=a.*b,cb=b.*a ca=cb?a1=2;b1=1 2 3;c1=a1.*b1,c11=b1.*a1 a

20、3=1 2 3;3 2 1;2 3 1;d1=a1.*a3,d2=a3.*a1 a2=2;3;2;b2=1 3 2;c2=a2.*b2;c2=b2.*a2 a22=2 3 2;c22=a22.*b2,c222=a2.*a2 a3=1 2 3;3 2 1;2 3 1;d3=a2.*a3,d4=a22.*a3,52,b3=2 3 1;4 3 2;3 2 1;c3=a3.*b3 a4=1 2 3 4;3 1 4 5;4 3 2 1;b4=1 2 3;4 3 2;5 3 2;1 2 3;c4=a4.*b4通过上述实例操作,可以得出结论:有标量参与的运算用数组乘和用矩阵乘结果相同*;对向量施以数组乘,向

21、量必须维数*(元素个数)相等;对矩阵施以数组乘,其阶数*必须相等。,53,矩阵除分右除和左除。矩阵右除包含了普通标量除、向量除和矩阵右乘逆。例:a=3;b=6;c=a/b a1=2;b1=1 2 3;c1=b1/a1(c1=a1/b1?)a3=1 2 3;3 2 1;2 3 1;d1=a3/a1,d2=a1/a3?a2=2;3;2;b2=1 3 2;c2=a2/b2,c2=b2/a2?a22=2 3 2;b22=1 3 2;(c22=a22/b22?)*a222=2;3;2;b222=1;3;2;(c222=a222/b222?)*,2.4.3 矩阵除与数组除,54,A2=2;3;2;B2=1

22、;3;C2=A2/B2*a2=2;3;2;b2=1 3 2;a3=1 2 3;3 2 1;2 3 1;a2/a3;a3/a2*a3/b2;b2/a3*b3=2 3 1;4 3 2;3 2 1;c3=a3/b3;c33=b3/a3(实际c3=a3*inv(b3),c33=b3*inv(a3))a4=1 2 3 4;3 1 4 5;4 3 2 1;b4=1 2 3;4 3 2;5 3 2;1 2 3;c4=a4/b4 c44=b4/a4,55,矩阵左除(AB)实际是用A逆左乘B。例:a=3;b=6;c=ab,cc=ba a1=2;b1=1 2 3;c1=a1b1(c1=b1a1?)*a3=1 2

23、3;3 2 1;2 3 1;d1=a1a3;d2=a3a1 a2=2;3;2;b2=1 3 2;a2/a1 c2=a2b2 c2=b2a2?a22=2 3 2;b22=1 3 2;(c22=a22/b22?)*b22a=1 2;c22a=a22/b22a*a222=2;3;2;b222=1;3;2;(c222=a222b222?)*b2a3 a3b2,56,a2=2;3;2;b2=1 3 2;a3=1 2 3;3 2 1;2 3 1;a2a3;a3a2*b3=2 3 1;4 3 2;3 2 1;c3=a3b3,c33=b3a3(实际c3=inv(a3)*b3,c33=inv(b3)*a3)a4

24、=1 2 3 4;3 1 4 5;4 3 2 1;b4=1 2 3;4 3 2;5 3 2;1 2 3;c4=a4b4 c44=b4a4,57,数组除分右除和左除。例:a1=3;b1=2;a1./b1=a1/b1=b1.a1=b1a1 b1./a1=b1/a1=a1.b1=a1b1 a2=2;b2=1 2 3;b22=2;4;1;a2./b2=b2.a2*a2/b2没有定义。b2a2另有定义 b2./a2=b2/a2=a2.b2=a2b2 a2./b22=b22.a2*b22a2没有定义。a2/b22另有定义 b22./a2=b22/a2=a2.b22=a2b22 a3=3 2 1;4 6 2

25、;3 4 3;a2./a3=a3.a2*a2/a3、a3a2没有定义,58,b2=1 2 3;b22=2;4;1;a3=3 2 1;4 6 2;3 4 3;上述各量之间的数组左右除均无定义。B2=3 4 6;B22=4;2;3;b2./B2=B2.b2 b2.B2=B2./b2 b22./B22=B22.b22 b22.B22=B22./b22b3=2 3 1;4 3 2;3 2 1;a3./b3=b3.a3 a3.b3=b3./a3a4=1 2 3 4;3 1 4 5;4 3 2 1;b4=1 2 3;4 3 2;5 3 2;1 2 3;a4.b4 b4.a4 a4./b4 b4./a4均无

26、定义。,59,2.4.4 矩阵乘方与数组乘方,矩阵乘方实际包括标量乘方和标量与矩阵的乘方关系。例如:a=3;b=2;ab ba a1=2 3 4;a1b ba1没有定义。a2=4;5;6;a2b ba2没有定义。a3=2 3 4;6 5 4;3 2 1;a3b ba3 b3=3 2 1;4 5 6;3 4 5;a3b3 b3a3没有定义。注意:只有标量和标量、标量和方阵之间的乘方有定义。,60,数组乘方包括标量与标量、标量与向量、标量与数组的乘方关系。例如:a=3;b=2;a.b b.a a1=2 3 4;a1.b b.a1有定义。a2=4;5;6;a2.b b.a2有定义。a3=2 3 4;

27、6 5 4;3 2 1;a3.b b.a3 a3.a1 a3.a2 a1.a3 a2.a3没有定义。b3=3 2 1;4 5 6;3 4 5;a3.b3 b3.a3有定义。b4=3 2 1;4 5 6;3 4 5;3 2 3;a3.b4 b4.a3无定义注意:方阵和方阵之间有定义,向量和矩阵之间的数组乘方无定义。,61,矩阵开方和数组开方均由函数实现。矩阵开方的函数是sqrtm(x),而数组开方的函数是sqrt(x)。例如:a=5;sqrtm(a)=sqrt(a)=2.2361 a1=2 4 5;a2=3;5;6;sqrtm(a1),sqrtm(a2)没有定义。sqrt(a1),sqrt(a2

28、)有定义。a3=3 5 7;3 2 1;4 6 8;sqrtm(a3),sqrt(a3)均有定义,但运算规则及结果不同。a4=4 5 3 2;8 6 4 2;3 5 7 9;sqrtm(a4)没有定义,sqrt(a4)有定义。注意:矩阵开方运算只适用于标量或方阵。,2.4.5 矩阵开方与数组开方,62,2.5 矩阵运算函数与数学函数,2.5.1 常用的矩阵运算函数1、size()函数 测试矩阵的阶数。d=size(a);n,m=size(a)2、length()函数 测试向量的维数和矩阵的列数。b=ones(1,100);d=length(b)e=length(a)3、prod()函数 矩阵元

29、素的求积。prod(a);prod(a,k)4、sum()函数 矩阵元素的求和。sum(a);sum(a,k)5、max()函数 min()函数 mean()函数 求出矩阵元素的最大值。max(a);max(a,k),63,2.5.2 常用的数学函数,MATLAB提供了几乎所有的初等函数,如三角、指数对数、复数等的运算函数。下面列一简表说明。,64,2.6 关系运算及逻辑运算,2.6.1 关系运算关系运算的规则:参与运算的矩阵必须是同阶矩阵或其中之一为标量。同阶矩阵作关系运算时,结果仍为同阶矩阵,矩阵中的元素值是参与运算的两矩阵对应元素作关系比较的结果值,即或0或1。当参与运算的对象有一是标量

30、时,结果仍为矩阵,其阶数与运算矩阵同。而结果阵中的元素值是运算矩阵每一元素与标量作关系比较的结果,即或0或1。关系运算比算术运算有更高优先权。,65,2.6.2 逻辑运算,逻辑运算的规则:参与运算的矩阵必须是同阶矩阵或其中之一为标量。同阶矩阵作逻辑运算时,结果仍为同阶矩阵,矩阵中的元素值是参与运算的两矩阵对应元素作逻辑运算的结果值,即或0或1。当参与运算的对象有一是标量时,结果仍为矩阵,其阶数与运算矩阵同。而结果阵中的元素值是运算矩阵每一元素与标量作逻辑运算的结果,即或0或1。,66,2.7 多项式及其运算,1、多项式及其MATLAB表达方式 多项式:S3+2S2+2S+1 MATLAB表达法

31、:A=1 2 2 12、多项式求根 B=1 3 2;roots(B)3、由指定根求多项式 p=2,1;ploy(p),67,4、多项式相乘(卷积)A=1 3 2;B=1 2 1;R=conv(A,B)5、多项式相除(解卷)R=1 5 9 7 2;A=1 3 2;B,t=deconv(R,A),68,第三章 MATLAB绘图,3.1 绘制基本二维图形3.2 绘制特殊二维图形3.3 绘制三维图形3.4 图形控制3.5 低层图形属性设置,69,科学计算所得的结果往往是一组或一堆数据,这样的数据不便利用。为了利用这些数据更加直观地解释说明问题,传统的做法通常是将数据制成表格,以备查用。其实,更直观的表

32、现这些数据的方法是把它们绘制成图形,这便是科学计算结果的图形化或称可视化。MATLAB提供了将科学计算数据图形化的功能,这就是本章要介绍的MATLAB的绘图功能。MATLAB可以对给出的原始数据绘制二维、三维甚至四维的图形。,70,在X-Y直角坐标系中绘制二维点线图,主要使用plot函数。1、函数使用的语法格式为:plot(y)以y的序号为x轴,按y中各元素值绘图 plot(x1,y1,x2,y2.)以x、y配对,绘制多组图形 plot(x1,y1,option1,x2,y2,option2.)对每一不同配对的x、y曲线图形设置不同属性(如线型、标志符、曲线颜色等),3.1.1 创建简单的二维

33、直角坐标图形,3.1 绘制基本二维图形,71,2、举例:例一:离散函数可视化 在X-Y坐标中,将离散函数y=|(n-6)|-1 做成点图。n=1:12;y=1./abs(n-6);plot(y,*)grid on 例二:连续函数可视化 在X-Y直角坐标中,绘制正弦函数y=sin(x)的曲线。clear all;x=linspace(0,2*pi,100);y=sin(x);plot(x,y),72,例三:矩阵作为绘图数据的情形 第一种情形:将行向量A做成X-Y坐标曲线图。A=1 2 3 4 6 6 8 9;plot(A);grid on 第二种情形:将列向量A做成X-Y坐标曲线图。A=1;2;

34、3;3;5;6;8;9;plot(A);grid on 第三种情形:将矩阵A做成X-Y坐标曲线图。A=2 3;5 6;10 12;8 9;3 4;plot(A);grid on说明:1、无论是第一种情形,还是第二种情形,A向量对应的就是前述绘图中的函数y。前两例的y实际都是一个行向量并且其元素即作为Y轴的取值,自变量是另一行向量,其元素值作为X轴坐标值。2、对矩阵A绘图时,MATLAB的处理是把每一列视为一条曲线,有多少列图中就有多少条曲线,每一个列元素作为Y轴的取值,而行号则是作为X轴坐标值。,73,3.1.2 修饰简单的二维图形,修饰图形主要是给图形的线条规定不同的线型、标志符号、颜色,加

35、上图形标题、说明文字、坐标轴、图例,设置坐标尺寸比例等。1、改变颜色与线形 MATLAB 绘制的曲线默认颜色是兰色,默认线型是实线。但前述plot函数第三种引用格式中,有一个option项,利用它,可以对曲线颜色、线型等属性,进行修改,具体的办法是将option项换成下表对应的颜色、标志或线型符号。例plot(y,k*:),例中单引号里的k表黑色,*表标志符号,:表线型,其他各种参数的意义如下表所示:,74,基本颜色、标志符号及线型,75,2、增加图例及文字说明信息 如果引用plot函数的第一种格式,通常也不加图例和说明文字。如果要加,MATLAB设计了另外两个函数:一个是图例函数legend

36、(),另一是文本函数text(),下面举例说明。例四:对例二中的正弦曲线重新设置曲线颜色、标志符号、线型,添加图例和文本说明。clear all;x=linspace(0,2*pi,100);y=sin(x);plot(x,y,-*r);或plot(x,y,-m,x,y,*g)legend(y=sin(x);text(1.4,0.91,波峰),76,3、增加坐标轴说明与图标题 单纯的plot函数不会说明坐标轴与图标题,如果要加,得用函数,与坐标轴相关函数有三个:分别是 xlabel()、ylabel()和zlabel()。图标题函数则是title()函数。下面举例说明。例五:在例四基础上,增加

37、坐标轴说明与图标题。clear all;x=linspace(0,2*pi,100);y=sin(x);plot(x,y,-m,x,y,*g);legend(y=sin(x);text(1.4,0.91,波峰);xlabel(自变量 x 轴);ylabel(函数 y 轴);title(正弦函数曲线);grid on,77,4、定制图形坐标轴 对坐标的控制设置主要使用下表提供的函数及参数。,78,从上述列表中可见,坐标轴的控制依靠axis()函数,对其设置则依靠其括号中的参数。但参数的引用是可加也可不加括号的,表中示例已说明此问题。现举一例加以说明。例六:在同一X-Y坐标系中绘制正弦和余弦两曲线

38、。clear all,close all;x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,-m,x,z,-b);title(正、余弦曲线);legend(y=sin(x),z=cos(x);xlabel(自变量 x 轴);ylabel(函数 y-z 轴);axis(square,equal);*grid on,79,3.1.3 二维图形函数库,1、下面用列表方式给出与二维图形处理有关的函数库。,80,2、基本绘图函数说明 MATLAB中的基本的二维绘图函数有以下几种:plot:X轴和Y轴均为线性刻度。loglog:X轴和Y轴均为对数刻度。sem

39、ilogx:X轴为对数刻度,Y为线性刻度。semilogy:X轴为线性刻度,Y为对数刻度。subplot:plotyy:ploar:,81,在同一图形中绘制多条曲线可以有如下几种解决方案:1、用plot命令的第三种格式:Plot(x1,y1,option1,x2,y2,option2.)例七:用图形表示连续调制波形 y=sin(t)sin(9t)及其包络线。clear all,close all;t=(0:pi/100:pi);y1=1;-1*sin(t);y2=sin(t).*sin(9*t);t3=pi*(0:9)/9;y3=sin(t3).*sin(9*t3);plot(t,y1,r:,

40、t,y2,b,t3,y3,go)axis(0,pi,-1,1);grid,3.1.4 绘制多条曲线,82,2、用hold on 加 plot 命令 例八:用hold on和plot命令重复前例。clear all,close all;hold on;t=(0:pi/100:pi);y1=1;-1*sin(t);plot(t,y1,r:);y2=sin(t).*sin(9*t);plot(t,y2,b);t3=pi*(0:9)/9;y3=sin(t3).*sin(9*t3);plot(t3,y3,go)axis(0,pi,-1,1);grid,83,3、用plotyy 命令 例九:用plotyy

41、绘制两条幅度差较大的曲线。clear all,close all;t=0:0.2:4*pi;y1=exp(-0.1*t).*sin(t);y2=5*exp(-0.5*t).*sin(5*t+1);plotyy(t,y1,t,y2);xlabel(时间 t 轴);gtext(y1轴);gtext(y2轴);legend(y1=exp(-0.1t)*sin(t);title(双纵坐标曲线)grid on;注意:1、plotyy函数只能在一幅图中同时绘制两条曲线,如果要绘制两条以上的曲线必须在其后借助hold on命令。2、gtext中的文本须借助鼠标帮助定位,比text命令显得灵活。,84,4、用

42、plot函数和矩阵 例十:用plot函数和矩阵重复前例。clear all,close all;t=0:0.2:4*pi;y1=exp(-0.1*t).*sin(t);y2=5*exp(-0.5*t).*sin(5*t+1);y3=sin(t);Y=y1;y2;y3;plot(t,Y);xlabel(时间 t 轴);ylabel(函数 y 轴);gtext(y1);gtext(y2);gtext(y3)legend(y1=exp(-0.1t)*sin(t),y2=exp(-0.5t)*sin(5t+1),y3=sin(t);title(正弦曲线及其衰减曲线);grid on;axis(0,4*

43、pi,-4,5),85,3.1.5 二维极坐标图形和复数图形,1、二维极坐标图形 除直角坐标外,二维极坐标图形是另一类重要的基本二维图形,其绘图函数是polar(),其引用格式如下:polar(theta,rho)theta为角度,用弧度度量,rho为半径。polar(theta,rho,option)option含义同plot函数。举例:例1、t=0:.01:2*pi;polar(t,sin(2*t).*cos(2*t),-r),86,例2、clear all,close all;t=0:0.01:2*pi;r1=(1+cos(t);r2=2*sqrt(cos(t).2);polar(t,r

44、1,m);legend(r1=(1+cost)hold on polar(t,r2,:b);title(双纽线和心脏线极坐标图);gtext(r1);gtext(r2),87,2、复数图形 当用plot()函数对复数z进行绘图时,根据对函数的引用方式不同,分两种情况处理:第一:plot(z)方式引用时,MATLAB将把复数的实部作为X坐标,虚部作为Y坐标进行绘图。第二:plot(t,z)方式引用时,则z中的虚数部分将被丢弃。举例:clear all,close all;t=0:0.05:4*pi;z=exp(-0.1+i)*t);plot(z)figure(2)plot(t,z),88,在实际

45、应用中,MATLAB考虑到比较和分析离散数据的需要,提供了许多特殊的二维图形,直方图就是其中之一,其函数名为bar()或barh()。1、函数使用的语法格式为:bar(y)将y向量各元素绘成直方图的各条,x默认为x=1:m bar(x,y)绘制mn矩阵的直方图,y为mn矩阵或向量,x必须单向递增。bar(x,y,width,style,option)width用于设长方条的宽度;style用于设长条的排列是分组group,还是堆积stack;option意义同前。,3.2.1 直方图和水平直方图,3.2 绘制特殊二维图形,89,2、举例:例一:绘制一个随机数向量的直方图。clear all,c

46、lose all;x=1:10;y=rand(size(x);bar(x,y);例二:绘制一矩阵直方图。clear all,close all;x=1:5;y=5 3 7;9 2 10;12 0 1;18 3 2;2 9 6;bar(x,y);figure(2);bar(x,y,0.6);figure(3);bar(x,y,stack,m);figure(4);barh(x,y),90,3.2.2 饼图,饼图与直方图的功能相似,都可表示数据组中某个分量在总量中所占的比例。其函数引用名为pie()。1、函数使用的语法格式为:pie(x)绘制向量x的饼图。x中的1元素对应饼图1扇区片。pie(x,

47、label)用来标注饼图中片的名称。pie(x,explode)将某个扇片从x饼图中分离。explode为一与x向量大小相同的向量,其中的元素取值为0或非0值。非0值对应的扇片号将会从此饼图分离。,91,2、举例:例三:用某工厂4个季度的生产量绘制一饼图。clear all,close all;x=11.4,23.5,35.4,15.6;explode=zeros(size(x);value,offset=min(x);explode(offset)=1;pie(x,explode);title(某工厂4个季度产量分布图);gtext(第1季);gtext(第2季);gtext(第3季);gt

48、ext(第4季);,92,3.2.3 柄图,柄图又称火柴杆图或针状图,主要用来绘制数位信号。其函数引用名为stem(),引用格式如下:stem(y)y向量中的元素值绘成柄长,各柄沿x方向等间距排列,x值自动产生。当y为矩阵时,按行分成不同的柄,而每一行各元素的值在同一个柄上表示出来。stem(x,y,fill,option)用x与y的列绘图。x和y为大小相同的向量或矩阵。另外,x可以是行或列向量,y为具有length(x)行的矩阵。fill指定对柄圈进行颜色填充,option意义与前同。以下为一简单实例:x=linspace(0,10,50);y=sin(x).*exp(-x/3);stem(

49、x,y,fill,m),93,3.2.4 阶梯图,和柄图功能类似,阶梯图也常用来绘制横坐标是时间序列的数位信号。其函数引用名为stairs(),引用格式如下:stairs(y)stairs(x,y)stairs(x,y,option)变量的含义与stem()函数类似。以下为一简单实例:x=linspace(0,10,50);y=sin(x).*exp(-x/3);stairs(x,y,m);title(stairs函数),94,3.2.5 频率累计柱状图,频率累计柱状图主要用于在直角坐标系中统计在一定范围内数据的频数,以显示数据的分布情况和统计特性。其函数引用名为hist(),引用格式如下:n

50、=hist(y)把y中数据划分成10组进行统计,并画出10个柱形。n=hist(y,x)y为待统计量,x为标量时指定分组数;x为向量时,以该向量中各元素为中心进行统计,柱状数即为x向量的个数。n=hist(y,n)y为待统计量,n为要绘的柱状数。以下为一简单实例:x=-2:0.2:2;y=randn(10000,1);hist(y,x);title(hist函数),95,3.2.6 等高线图,等高线图*又称等值线图。等高线图在地理、工程等方面应用很广泛,其二维等高线图的绘制命令是contour()。1、函数引用的语法格式 contour(Z)、contour(Z,n)、contour(Z,v)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号