1、MATLAB的初步知识,MATLAB最初是由Cleve Moler用Fortran语言设计的,有关矩阵的算法来自Linpack和Eispack课题的研究成果;现在的MATLAB程序是MathWorks公司用 C语言开发的。MATLAB作为美国 MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境。是目前最好的科学计算类软件。,一简介,MATLAB的主要应用领域,(1)、数值分析。 (2)、数值和符号计算。 (3)、工程与科学绘图。 (4)、控制系统的设计与方针。 (5)、数字图像处理。 (6)、数字信号处理。 (7)、通讯系统设计与仿真。 (8)、财务与金融工
2、程。,一简介,MATLAB的优点,1. 容易使用 2. 可以由多种操作系统支持 3. 丰富的内部函数 4. 强大的图形和符号功能 5. 可以自动选择算法 6. 与其他软件和语言有良好的对接性,一简介,MATLAB的缺点,运行效率较低 由于MATLAB是一种合成语言,因此,与一般的高级语言相比,用MATLAB编写的程序运行起来时间往往要长一些。 价格比较贵 一般的用户可能支付不起它的高昂费用。但是,购买MATLAB的昂贵费用在很大程度上可以由使用它所编写的程序的价值抵消。,一简介,二界面概述,1. MATLAB 7的主菜单,MATLAB 7的主菜单包括File、Edit、Debug、Deskto
3、p、Window和Help菜单。 可以执行的操作有New、Open、Undo、Redo、Cut、copy和Step等。,二界面概述,MATLAB 7的工具栏包括新建文件、打开文件、剪切、复制和粘贴等常用图标 同时,MATLAB 7的工具栏适时显示MATLAB 7的当前路径,用户还可以通过工具栏来改变当前路径,2. MATLAB 7的工具栏,二界面概述,3. MATLAB 7的窗口,打开MATLAB 7,默认打开的窗口包括:(1)命令窗口(Command Window);(2)命令历史窗口(Command History);(3)工作间管理窗口(Workspace);(4)当前路径窗口(Curr
4、ent Directory) 此外,还有编译窗口、图形窗口和帮助窗口等其他种类的窗口 。,二界面概述,(1). 命令窗口,在默认设置下,命令窗口自动显示于MATLAB界面中,如果用户只想调出命令窗口,也可以选择Desktop | Desktop Layout | Command Window Only命令。MATLAB 7用户界面的右侧窗口就为命令窗口。,二界面概述,(2). 命令历史窗口,命令历史窗口显示用户在命令窗口中所输入的每条命令的历史记录,并标明使用时间,这样可以方便用户的查询。 如果用户想再次执行某条已经执行过的命令,只需在命令历史窗口中双击该命令。,二界面概述,(3). 工作间管
5、理窗口,工作间管理窗口就是用来显示当前计算机内存中MATLAB变量的名称、数学结构、该变量的字节数及其类型。 在默认设置下,工作间管理窗口自动显示于MATLAB界面中。,二界面概述,(4). 当前路径窗口,在默认设置下,当前路径窗口自动显示于MATLAB界面中,用户也可以选择Desktop| Current Directory命令调出或隐藏该命令窗口。 当前路径窗口显示着当前用户工作所在的路径,二界面概述,MATLAB 7的路径搜索,MATLAB 7有一个专门用于寻找“.m”文件的路径搜索器。“.m”文件是以目录和文件夹的方式分布于文件系统中的,一部分“.m”文件的目录是MATLAB 7的子目
6、录,由于MATLAB 7的一切操作都是在它的搜索路径(包括当前路径中进行的,所以如果调用的函数在搜索路径之外,MATLAB 7就会认为此函数并不存在。,二界面概述,MATLAB 7的路径搜索,(1)MATLAB 7的当前目录 在命令窗口中输入cd命令,并按Enter键确认,即显示有当前MATLAB 7工作所在目录。 cd C:MATLAB71work ,二界面概述,MATLAB 7的路径搜索,(2)MATLAB 7的路径搜索 选择MATLAB的主窗口中File | Set Path命令 ,进入到设置路径搜索的对话框 ,用户可以设置新的路径,三基本使用方法,(1)最简单的计算器使用法,直接输入法
7、 3*30+3*35+4*30+4*32 ans =443 ,存储变量法 grade1=3*30 grade1 =90 grade2=3*35 grade2 =105 total=grade1+grade2total =195 ,三基本使用方法,(1)最简单的计算器使用法,直接输入法 3*30+3*35+4*30+4*32 ans =443 ,存储变量法 grade1=3*30 grade1 =90 grade2=3*35 grade2 =105 total=grade1+grade2total =195 ,三基本使用方法,数值运算符号,三基本使用方法,(2)常用标点符号,三基本使用方法,2.
8、常用的操作命令和键盘技巧,在使用MATLAB 7语言编制程序时,掌握一些常用的操作命令和键盘操作技巧,可以起到事半功倍的效果 。,三基本使用方法,(1)常用的操作命令,三基本使用方法,(2)常用的键盘操作和快捷键,三基本使用方法,3.MATLAB 7的数据类型,常量和变量 常量 变量 浮点数和复数 浮点数 复数,三基本使用方法,(1)常量,在MATLAB中有一些特定的变量,它们已经被预定义了某个特定的值,因此这些变量被称为常量。MATLAB 7中的常量主要有pi、inf和eps等。,三基本使用方法,(2)变量,变量是MATLAB 7的基本元素之一,MATLAB 7语言不要求对所使用的变量进行事
9、先说明,而且它也不需要指定变量的类型,系统会根据该变量被赋予的值或对该变量所进行的操作来自动确定变量的类型。 变量名长度不超过31位,超过31位的字符系统将忽略不计 变量名区分大小写 变量名必须以字母开头,变量名中可以包含字母、数字或下划线,但不允许出现标点符号,三基本使用方法,(3)浮点数,几乎在所有的情况下,MATLAB 7的数据都是以双精度数值来表示的,这些双精度数在系统内部用二进制来表示。这是计算机通常的表示数据的方式,但也带来了一些问题,比如有很多实数不能被精确地表示,对能够表示的值也有一个限制,并且还存在一个浮点相对误差限。所谓相对误差限是指MATLAB 7语言能够区分两个不同大小
10、的数时,这两个数之间的最小差值。,浮点数举例,下边3个式子的计算结果是相同的,但是由于这些数字都是使用二进制存储的,在使用双精度数来表达这些数时,往往就会出现一些误差 a=0.33-0.5+0.17 a =2.7756e-017 b=0.33+0.17-0.5 b =0 c=0.17-0.5+0.33 c =5.5511e-017 ,三基本使用方法,三基本使用方法,(4)复数,MATLAB 7语言对复数的处理也是十分简便的,在处理复数问题时,不需要进行其他任何的附加操作。 a2=pi+3.14j a2 =3.1416 + 3.1400i b=4*(1+3/sqrt(-1) b =4.0000
11、-12.0000i ,三基本使用方法,复数的数学运算 举例, a=1+2*i a =1.0000 + 2.0000i b=3-4i b =3.0000 - 4.0000i c=pi+sin(pi/2)*i c =3.1416 + 1.0000i d=a+b d =4.0000 - 2.0000i,四向量和数组,1.向量及其运算,在命令窗口中直接输入向量 等差元素向量的生成,四向量和数组,(1)在命令窗口中直接输入向量,在MATLAB 7中,生成向量最简单的方法就是在命令窗口中按一定格式直接输入。输入的格式要求是,向量元素用“ ”括起来,元素之间用空格、逗号或者分号相隔。需要注意的是,用它们相隔
12、生成的向量形式是不相同的:用空格或逗号生成行向量;用分号生成列向量。, a2=15,21,27,93,101; a1=15;21;27;93;101; a1 a1 =15212793101 a2 a2 =15 21 27 93 101 ,四向量和数组,(2)等差元素向量的生成,当向量的元素过多,同时向量各元素有等差的规律,此时采用直接输入法将过于繁琐。针对该种情况 ,可以使用冒号(:) 和linspace函数来生成等差元素向量。, vec1=10:5:60 vec1 =10 15 20 25 30 35 40 45 50 55 60 vec2=linspace (10,60,11) vec2
13、=10 15 20 25 30 35 40 45 50 55 60,四向量和数组,2.数组寻址和排序,通过对数组下表的访问来实现数组寻址 A=rand(1,5) A =0.9501 0.2311 0.6068 0.4860 0.8913 A(4) ans =0.4860 A(2:3) ans =0.2311 0.6068,使用sort函数对数组进行排序 X = 3 7 50 4 2 sort(X,1) ans =0 4 23 7 5,四向量和数组,3. 多项式,多项式的创建 多项式的运算,四向量和数组,(1)多项式的创建,直接输入系数向量创建多项式 特征多项式输入法 由多项式的根逆推多项式,直
14、接输入系数向量创建多项式,由于在MATLAB 7中多项式是以向量的形式存储的,直接输入向量,MATLAB 7将按降幂自动把向量的元素分配给多项式各项的系数。而该向量可以是行向量,也可以是列向量 。, P=3 5 0 1 0 12 P =3 5 0 1 0 12 y=poly2sym(P) y = 3*x5+5*x4+x2+12 disp(y) 3*x5+5*x4+x2+12 ,四向量和数组,四向量和数组,特征多项式输入法,MATLAB 7提供了poly函数,使用它可以由矩阵的特征多项式创建多项式。使用该方法生成多项式时,其首项的系数必为1 。, A= 3 1 4 1; 5 9 2 6;5 3
15、5 8; 9 7 9 3 A =3 1 4 15 9 2 65 3 5 89 7 9 3 p=poly(A); disp(poly2sym(p) x4-20*x3-16*x2+480*x+1724034232352773/17592186044416,四向量和数组,由多项式的根逆推多项式,如果已知某个多项式的根,那么,使用poly函数,可以很轻松地产生其对应的多项式。, roots=-4 -2+2i -2-2i 5 roots =-4.0000 -2.0000 + 2.0000i -2.0000 - 2.0000i 5.0000 p=poly(roots) p =1 3 -16 -88 -16
16、0 disp(poly2sym(p) x4+3*x3-16*x2-88*x-160 ,四向量和数组,多项式的求值,MATLAB 7提供了两个函数来对多项式进行求值,即polyval和polyvalm。前者以数组为计算单位,后者以矩阵为计算单位。, p=1.0000 -20.0000 -16.0000 480.0000 98.0000 p =1 -20 -16 480 98 x=4 x =4 polyval(p,x) ans =738,四向量和数组,求多项式的根,在MATLAB 7语言里,多项式由一个行向量表示,设为p,它的系数按降序排列,使用roots函数可以求出该多项式的根。其使用格式为roots(p)。, p=1 0 3 12 -7 p =1 0 3 12 -7 roots(p) ans =0.7876 + 2.4351i0.7876 - 2.4351i-2.0872 0.5121 ,四向量和数组,4.关系和逻辑运算,关系操作符 逻辑操作符 关系与逻辑函数 NaNs和空矩阵 各种运算符的优先级,四向量和数组,(1) 关系操作符,关系操作符及其功能,四向量和数组,(2) 逻辑操作符,逻辑操作符及其功能,四向量和数组,(3) 关系与逻辑函数,关系与逻辑函数及其功能,四向量和数组,各种运算符的优先级,