《Matlab软件介绍.doc》由会员分享,可在线阅读,更多相关《Matlab软件介绍.doc(8页珍藏版)》请在金锄头文库上搜索。
1、Matlab软件介绍1 Matlab背景介绍 MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制
2、界的标准计算软件。时至今日,经过Math Works公司的不断完善,MATLAB已经发展成为适合多学科、多种工作平台的功能强劲的大型软件。在国外,MATLAB已经经受了多年考验。在欧美等高校,MATLAB已经成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生、硕士生、博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题14。2 Matlab语言介绍2.1 Matlab语言的特点 一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点。正如同
3、FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB的最突出的特点就是简洁。MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观、最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。(1) 语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数
4、的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上。具有FORTRAN和C等高级计算机语言知识的读者可能已经注意到,如果用FORTRAN或C语言去编写程序,尤其当涉及矩阵运算和画图时,编程会很麻烦。例如,如果用户想求解一个线性代数方程,就得编写一个程序块读入数据,然后再使用一种求解线性方程的算法(例如追赶法)编写一个程序块来求解方程,最后再输出计算结果。在求解过程中,最麻烦的要算第二部分。解线性方程的麻烦在于要对矩阵的元素作循环,选择稳定的算法以及代码的调试都不容易。即使有部分源代码,用户也会感到麻烦,且不能保证运算的稳定性。解线性方程的程序用FORTRAN和C这样的高级语言编写至
5、少需要好几十行。再如用双步QR方法求解矩阵特征值,如果用FORTRAN编写,至少需要四百多行,调试这种几百行的计算程序可以说很困难。以下为用MATLAB编写以上两个小程序的具体过程。用MATLAB求解下列方程,并求矩阵A的特征值。 其中:解为:x=Ab;设A的特征值组成的向量为e,e=eig(A)。可见,MATLAB的程序极其简短。更为难能可贵的是,MATLAB甚至具有一定的智能水平,比如上面的解方程,MATLAB会根据矩阵的特性选择方程的求解方法,所以用户根本不用怀疑MATLAB的准确性。(2) 运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活
6、使用MATLAB的运算符将使程序变得极为简短。(3) MATLAB既具有结构化的控制语句(如for循环、while循环、break语句和if语句),又有面向对象编程的特性。(4) 语法限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。(5) 程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。(6) MATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。(7) MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MAT
7、LAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。(8) 功能强劲的工具箱是MATLAB的另一重大特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能。功能性工具箱能用于多种学科。而学科性工具箱是专业性比较强的,如control、toolbox、signal processing toolbox、communication toolbox等。这些工具箱都是由该领域内的学术水平很高的专家
8、编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。(9) 源程序的开放性。开放性也许是MATLAB最受人们欢迎的特点。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。2.2 Matlab语句的基本功能进入MATLAB之后,会看到一个MATLAB Command Window,称为命令窗,它是最主要的窗口,既是键入命令也是显示计算结果的地方。另外还有一个编程窗,专门用来编辑应用程序。还有一个主窗口,用来记录已使用过的历史命令和已打开的目录,方便使用者查找。如果绘图还会自动弹出一个绘图
9、窗,专门用来显示绘制的图形。MATLAB一般有3种进行计算的方法,第1种就如同使用计算器,直接输入数值和运算符,立即从屏幕上获得结果。第2种先对变量赋值,然后再输入由变量构成的表达式,也可立即获得结果。第3种,就是采用编程的方法来解决较复杂的,诸如含有判断、循环、迭代、递归等算法的较复杂的问题。上述方法中,第2和第3包括了数组和矩阵运算,只要定义了数组和矩阵变量,就可以如同普通代数运算一样直接用变量进行数学运算,十分方便。MATLAB提供的基本算术运算有:加(+)、减(-)、乘(*)、除(/)、幂次方()。MATLAB的关系和逻辑运算符与其他软件基本相同,仅列表加以说明:表1 MATLAB的逻
10、辑运算符符 号功 能符 号功 能=赋值运算&逻辑与运算= =关系运算,相等|逻辑或运算不等于-逻辑非运算小于xor逻辑异或运算大于,分行符,结果不显示=大于等于;分行符,结果显示%注释标志矩阵转置.向量转量MATLAB可以将计算结果以不同的精度输出,列表说明如下:表2 MATLAB精度列表命 令说 明format short默认显示,保留小数点后4位format long有效数字16位format long e有效数字16位加3位指数format short e 有效数字5位加3位指数format bank保留两位小数位format +只给出正、负format rational以分数形式表示f
11、ormat hex16进制数format long g15位有效数format short g5位有效数MATLAB对使用变量名称的规定:(1)变量名称的英文大小写是有区别的(apple、Apple、AppLe三个变量不同)。(2)变量的长度上限为19个字母。(3)变量名的第一个字母必须是英文,随后可以掺杂英文字、数字或是下划线。下表给出MATLAB所定义的特殊变量及其意义。表3 MATLAB的特殊变量变量名意 义help在线帮助,如help quitwho列出所有定义过的变量名称ans默认的用来表示计算结果的变量名eps极小值=2.2204e-16pip值inf无穷大的数nan非数值3 Ma
12、tlab编程3.1 控制语句MATLAB也有控制流语句,用于控制程序的流程。主要有for循环、while循环、if和break三种控制语句。虽然语句很少,但功能很强。(1) for循环语句for循环语句的一般表达形式为:for i=表达式 可执行语句1 可执行语句nend(2) while循环while循环语句用来控制一个或一组语句在某逻辑条件下重复预先确定或不确定的次数。while循环语句的一般表达形式为: while 表达式 循环体语句 end(3) if和break语句MATLAB中if和break语句的作用与使用方式同其它编程语言一样,用来将控制流程进行分流与中断退出。(4) if e
13、lse end分支结构分支结构有三种形式: if 表达式 执行语句 end如果表达式的值非0,则执行下面的语句.否则执行end后面的语句。if 表达式 执行语句1 else 执行语句2 endif 表达式1 执行语句1 elseif 表达式2 执行语句2 elseif 表达式3 执行语句3 else (此句可以省略) 执行语句n end3.2 创建M文件创建M文件是MATLAB中的非常重要的内容.事实上,正是由于在MATLAB 工具箱中存放着大量的M文件,使得MATLAB在应用起来显得简单、方便,且功能强大。如果用户根据自己的需要,开发出适用于自己的M文件,不仅能使MATLAB更加贴近用户自己
14、,而且能使MATLAB的功能得到扩展。M文件有两种形式:命令文件和函数文件当用户要运行的命令较多时,如果直接在命令窗口中逐条输入和运行,有诸多不便。此时可通过编写命令文件来解决这个问题。另外,从前面的许多例子可以看到:MATLAB的许多命令,需要用户通过编写函数文件来执行。(1) 命令文件的创立进入MATLAB命令窗口后,选择“file”下拉式菜单中的“new”进入编辑/调试器(Editer/Debugger),在编辑/调试器中,编写符合语法规则的命令。编写完命令文件后,选择“file”下拉式菜单中的“save”项,然后依提示输入一个文件名。至此,完成了命令文件的创建。(2) 函数文件的创立函数文件的创立方法与命令文件的创立方法完全一样,只是函数文件的第一句可执行语句是以function引导的定义语句,并且输入文件名时要与定义语句中的函数名相同。建立了函数文件或命令文件后,只要在命令窗口键入命令文件名或函数名,就可执行M文件中所包含的所有命令。下面分别创建并运行一个命令文件和一个函数文件,以了解M文件的创建和运行的全过程。计算所有小于1000的Fibonnaci数。命令文件的创建和运行:(1) 在MATLAB的命令窗口点击“新建”工具栏或在“file”下拉菜单中选“New”中的“M-file”项,进入编辑/调