MATLAB技术大全(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-28 02:46:37

点击下载

作者:葛超,王蕾.曹秀爽(编著)

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

MATLAB技术大全

MATLAB技术大全试读:

前言

为何编写本书

最初的MATLAB软件包是1967年由Clere Maler用FROTRAN语言编写的,新版的MATLAB是由Mathworks用C语言完成的,它自1984年推向市场以来,随着版本的不断升级,具有越来越强大的数值计算能力、更为卓越的数据可视化能力及良好的符号计算功能,现已成为国际认可的最优化的科技应用软件。在它的发展过程中,许多优秀的编者为它的完善做出了卓越的贡献, 使它从一个简单的矩阵分析软件逐渐发展成为一个具有极高通用性的带有众多实用工具的运算操作平台。与其他高级语言相比,MATLAB提供了一个人机交互的教学系统环境,并以矩阵作为基本的数据结构,可以大大节省编程时间。MATLAB语法规则简单,容易掌握,调试方便,调试过程中可以设置断点,存储中间结果,从而很快查出程序中的错误。

正是由于MATLAB的强大功能,在美国大学中,MATLAB语言受到了教授与学生的欢迎和重视。由于它将使用者从繁重重复的计算中解放出来,把更多的精力投入到对数学的基本含义的理解上,因此,它已逐步成为许多大学生和研究生课程中的标准运算工具。像线性代数、高等数学、信号处理、自动控制等许多领域,不论在教学还是学生解题时,它都表现出高效、简单和直观的特征,是计算机辅助设计强有力的工具。因此在国外的高等院校里,MATLAB已经成为线性代数、自动控制理论、概率论及数理统计、数字信号处理、时间序列分析、动态系统仿真等课程的基本教学工具,熟练运用MATLAB已成为大学生、研究生必须掌握的基本技能;在设计研究单位和工业部门,MATLAB已成为研究必备软件和标准软件。国际上许多新版科技书籍(特别是高校教材)在讲述其专业时都把MATLAB作为基本工具使用。

MATLAB版本在更新过程中,不断加入新的组件或功能,以往关于MATLAB的书均从软件组织的角度出发,向使用者介绍该软件,但从使用者的知识结构看,由于编写组织分散,无统一体系,因而往往使用者对具体功能有所了解,但距如何将其与自己的数学知识相结合并从整体上把握、运用该软件还差得远。编写本书的目的就是阐述MATLAB软件的整体知识结构,从最基本的知识和操作入手,深入讲解这一高效的应用软件,以一个大家十分熟悉的结构来组织全书,帮助使用者摆脱繁重而重复的数学计算,能有更多的时间和精力来理解严谨的数学概念和题目的含义。

本书内容特色

1.内容新颖,知识全面

本书内容安排考虑到MATLAB进行仿真和运算分析时的基础知识和实践操作,从基础的变量、函数、数据类型等入手,到数学分析、图形可视化、Simulink仿真、文件读写等,详细全面地帮助读者掌握MATLAB的分析方法。

2.版本更新与内容稳定并重

随着MathWorks公司每年两次发行MATLAB软件的新版本,新内容不断增加到新版本中。但相对于更新的版本,在基础编程、基础知识和基础操作方面保持了一贯的稳定性。因此,本书在编写时兼顾了版本的更新和内容的稳定。

3.内容深入,实例清楚

MATLAB的基础内容中涉及比较多的方面,本书在对相关主题介绍的同时,将函数或命令中比较常用的部分进行重点的分析介绍,同时,通过实例对函数和命令中的一些典型知识点进行讲解,从而帮助读者掌握和深入学习。

4.精心编排,便于查阅

本书在讲解MATLAB命令时,精心选择了有代表性的实例。同时,将相关内容和函数命令通过表格的形式归纳总结,从而使读者在学习的同时,翻阅查找相关部分的命令、函数。因此,非常有利于读者阅读和查阅。

适合的读者群

本书的主要目的是向社会推广MATLAB软件的功能与使用方法,内容编排遵循循序渐进的原则,体现认知规律的特点,适合不同程度的读者。入门的读者可以很快地掌握一些常用的基本命令并积累编程经验,专业读者则可以从对某一工具箱的使用中掌握相应的开发技术和技巧。本书既可以作为高等院校的教科书,又可供广大科技工作者阅读使用。编者2013年12月第1章MATLAB概述

MATLAB简介

MATLAB的安装

MATLAB操作界面介绍

MATLAB帮助系统

本章小结

MATLAB是一种功能十分强大、运算效率很高的专业计算机软件,用于工程科学的矩阵数学运算,全称是Matrix Laboratory。起初它是一种专门用于矩阵运算的软件,但经过多年的发展,MATLAB逐渐发展为一种极其灵活的计算体系,几乎可以解决科学计算中任何重要的技术问题。MATLAB程序执行MATLAB语言,并提供了一个极其广泛的预定义函数库,拥有难以置信的各种丰富的函数;即使基本版本的MATLAB语言拥有的函数也比其他的工程编程语言要丰富得多。基本的MATLAB 语言已经拥有了超过1000 多个函数,而它的工具包带有更多的函数,由此扩展了它在许多专业领域的能力。

本章主要介绍MATLAB的一些基本情况,主要包括MATLAB的功能、发展历史以及MATLAB 2011b的新特点等。1.1 MATLAB简介

MATLAB最初是由Clever Moler用FORTRAN语言设计的,有关矩阵的算法来自Linpack和Eispack课题的研究成果。现在的MATLAB程序是由MathWorks公司用C语言开发的。本节主要介绍MATLAB的整体情况及特点。1.1.1 MATLAB的发展

起初,MATLAB是专门用于矩阵技术的一种数学软件,但伴随着MATLAB的逐步市场化,其功能也越来越强大,从MATLAB 4.1开始,MATLAB开始拥有自己的符号运算功能,从而使MATLAB可以代替其他一些专用的符号计算软件。

在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入/输出、文件管理等多项操作。MATLAB提供了数据分析、算法实现与应用开发的交互式开发环境,经历了20多年的发展历程。

20世纪70年代中期,美国新墨西哥大学计算机系主任Clever Moler博士和其同事在美国国家自然科学基金的资助下,开发了调用Linpack和Eispack的FORTRAN子程序,20世纪70年代后期, Moler博士编写了相应的接口程序,并将其命名为MATLAB。

1983年,John Little和Moler、Bangert等一起合作开发了第2代专业版MATLAB。1984年, Moler博士和一批数学专家、软件专家成立了MathWorks公司,继续MATLAB软件的研制与开发,并着力将软件推向市场。

1993年,MathWorks公司连续推出了MATLAB 3.x(第1个Windows版本)、MATLAB 4.0。1997年,MathWorks公司推出了MATLAB 5.0。2001年,Math Works公司推出了MATLAB 6.x。2004年,MathWorks公司推出了MATLAB 7.0。MATLAB 5.3对应于Release12,MATLAB 6.0对应于Release13,而MATLAB 7.0对应于Release14。

MATLAB分为总包和若干工具箱,随着版本的不断升级,它具有越来越强大的数值计算能力、更为卓越的数据可视化能力及良好的符号计算功能,逐步发展成为各种学科、多种工作平台下功能强大的大型软件,获得了广大科技工作者的普遍认可。一方面,MATLAB可以方便实现数值分析、优化分析、数据处理、自动控制、信号处理等领域的数学计算,另一方面,也可以快捷实现计算可视化、图形绘制、场景创建和渲染、图像处理、虚拟现实和地图制作等分析处理工作。在欧美许多高校,MATLAB已经成为线性代数、自动控制理论、概率论及数理统计、数字信号处理、时间序列分析、动态系统仿真等课程的基本教学工具,是攻读学位本科生、研究生必须掌握的基本技能。在国内,这一语言也正逐步成为一些大学理工科专业学生的重要选修课。1.1.2 MATLAB的优点

与其他的计算机高级语言相比,MATLAB有着许多非常明显的优点,介绍如下。

1.简单易学

MATLAB允许用户以数学形式的语言编写程序,用户在命令窗口中输入命令即可直接得到结果, 这比C、FORTRAN和Basic等高级语言都要方便得多。由于它是用C语言开发的,它的流程控制语句与C语言中的相应语句几乎一致。所以,初学者只要有C语言的基础,就会很容易掌握MATLAB语言。

2.短小高效的源代码

由于MATLAB已经将数学问题的具体算法编成了现成的函数,用户只要熟悉算法的特点、使用场合、函数的调用格式和参数意义等,通过调用函数很快就可以解决问题,而不必花大量的时间纠缠于具体算法的实现。

3.强大的计算功能

该软件具有强大的矩阵计算功能,利用一般的符号和函数就可以对矩阵进行加、减、乘、除运算以及转置和求逆运算,而且可以处理稀疏矩阵等特殊的矩阵,非常适合于有限元等大型数值算法的编程。此外,该软件现有的数十个工具箱可以解决应用中的大多数数学问题。

4.强大的图形符号表达功能

该软件不仅可以绘制一般的二维、三维图形,如线图、条形图、饼图、散点图、直方图、误差条图等,还可以绘制工程特性较强的特殊图形,如玫瑰花图、极坐标图等。科学计算要涉及大量的数据处理,利用图形展示数据场的特性,能显著提高数据处理的效率,提高对数据反馈信息的处理速度和能力。MATLAB提供了丰富的科学计算可视化功能,利用它,可以绘制二维三维矢量图、等值线图、三维表面图、假色彩图、曲面图、云图、二维三维流线图、三维流锥图、流沙图、流带图、流管图、卷曲图、切片图等,此外还可以生成快照图和进行动画制作。基于MATLAB句柄图形对象,结合绘图工具函数,可以根据需要用MATLAB绘制自己的图形。

MATLAB也开发了自己的符号运算功能,特别是MATLAB 2011b在这方面的功能丝毫也不逊色于其他的相关软件,如Mathematic和Mathcad等。因此,用户只需掌握MATLAB 2011b这一门语言,就几乎可以解决学习和科研中的所有问题,不必再专门学习一门符号运算语言。同时由于有了Maple和MATLAB之间的接口,这个问题得到了更好的解决。

5.可扩展性强

可扩展性能是该软件的一大优点,用户可以自己编写MATLAB文件,组成自己的工具箱,方便地解决本领域内常见的计算问题。此外,利用MATLAB编译器和运行时服务器,可以生成独立的可执行程序,从而可以隐藏算法并避免依赖MATLAB。MATLAB支持DDE和ActiveX自动化等机制,可以与同样支持该技术的应用程序进行接口。

6.丰富的内部函数

MATLAB的内部函数库提供了相当丰富的函数,这些函数可以解决许多基本问题,如矩阵的输入。在其他语言中(如C语言),要输入一个矩阵,先要编写一个矩阵的子函数,而MATLAB语言则提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩阵对象的时候,不要求做明确的维数说明。与利用C语言或FORTRAN语言编写数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。这给用户节省很多的时间,使用户能够把自己的精力放在创造方面,而把繁琐的问题交给内部函数来解决。

除了这些数量巨大的基本内部函数外,MATLAB还有为数不少的工具箱。这些工具箱用于解决某些特定领域的复杂问题,例如,使用Wavelet Toolbox进行小波理论分析,或者使用Financial Toolbox来进行金融方面问题的研究。同时,用户可以通过网络获取更多的MATLAB程序。

7.支持多种操作系统

MATLAB支持多种计算机操作系统,如Windows 2000/XP/Vista/7以及许多不同版本的UNIX操作系统。而且,在一种操作系统下编制的程序转移到其他的操作系统下时,程序不需要做出任何修改。同样,在一种平台上编写的数据文件转移到另外的平台时,也不需要做出任何修改。因此,用户编写的MATLAB程序可以自由地在不同的平台之间转移,这给用户带来了很大的方便。

8.可以自动选择算法

在使用其他语言编制程序时,往往会在算法的选择上费一番周折,但在MATLAB里,这个问题不复存在。MATLAB的许多功能函数都带有算法的自适应能力,它会根据情况自行选择最合适的算法。这样,当使用其他程序时,因算法选择不当而引起的譬如死循环等错误,在使用MATLAB时可以在很大程度上避免。

9.与其他软件和语言有良好的对接线

除了上面所提的MATLAB与Maple的连接外,MATLAB与FORTRAN、C和Basic之间都可以实现很方便的连接,用户只需将已有的EXE文件转换成MEX文件即可。可见,尽管MATLAB除自身已经具有十分强大的功能之外,它还可以与其他程序和软件实现很好的交流,这样可以最大限度地利用各种资源的优势,从而使MATLAB编制的程序能够做到最大程度的优化。1.1.3 MATLAB的缺点

MATLAB的缺点主要体现在两个方面。

首先,由于MATLAB是一种合成语言,因此,与一般的高级语言相比,用MATLAB编写的程序运行起来时间往往要长一些。当然,随着计算机运行速度的不断提高,这个缺点正在逐渐弱化。而且,由于用户在使用MATLAB编写程序时比较节省时间,就从编写程序到运行完程序的总的时间来说,使用MATLAB仍然比使用其他语言节省时间。

其次,虽然MATLAB这套软件比较贵,一般的用户可能支付不起它的高昂费用。但是,由于MATLAB具有极高的编程效率。因此,购买MATLAB的昂贵费用在很大程度上可以由使用它所编写的程序的价值抵消。所以,就性价比来说,MATLAB绝对是物有所值。即使这样, MATLAB对于一般的用户来说,仍然显得过于昂贵。幸运的是,MATLAB的开发公司还发行了一种比较便宜的MATLAB学生版,这对广大想学习和运用MATLAB的用户来说,无疑是一个极好的消息。MATLAB学生版与MATLAB基本版几乎一样,可以解决很多科研和学习中遇到的问题。

总而言之,相对于MATLAB的优点来说,它的缺点是微不足道的。而且,随着MATLAB版本的不断升级,它的缺点已经变得越来越不明显。掌握MATLAB,必将给我们的学习、科研和工作带来极大的帮助。1.2 MATLAB的安装

用户到网站下载Windows操作系统下的MATLAB 2011b软件后,可以按照相关的说明进行安装,安装过程相对比较简单。与之前的MATLAB版本类似,即使Windows版本的,也有32位与64位之分,安装程序会自动识别Windows的版本,然后进行相应的安装。安装MATLAB 2011b必须具有由MathWorks公司提供的合法个人使用许可,如果没有使用许可,用户将无法安装MATLAB。下面将一步一步指导读者安装MATLAB 2011b。

在一般情况下,当用户打开安装光盘中的setup.exe应用程序时,如图1-1所示,MATLAB会启动安装向导,显示开始安装MATLAB 2011b,如图1-2所示。图1-1 安装路径图1-2 开始安装

在安装过程选项中,最好不要选择应用Internet安装,然后单击Next按钮,如图1-3所示。图1-3 安装选项

选择图1-4中的接受许可(Yes)协议,并单击Next按钮。图1-4 许可协议

找到图1-1中的crack文件夹中的install.txt文件,如图1-5所示,双击打开后复制其中的序列号(最好单机安装)。图1-5 选择序列号

将上一步骤中复制的序列号粘贴在如图1-6所示的安装序列号界面中。

当图1-6中的Next按钮由灰色变成黑色后,单击之,得到图1-7所示的安装形式界面,用户根据自己的需要选择用户定制安装,没有必要全部安装。图1-6 安装序列号图1-7 用户定制安装

单击图1-7中的Next按钮,得到安装路径选择对话框,如图1-8所示。

用户根据自己的实际需要,在图1-8所示的对话框中选择适当的安装路径,然后单击Next按钮,得到图1-9所示的安装界面,用户根据自己的工作或学习需要选择安装适当的工具箱,不必全部安装。图1-8 安装路径图1-9 安装工具箱

单击图1-9中的Next按钮,得到图1-10所示的安装确认界面,包括用户选定的安装路径以及所选择的安装工具箱,接着单击Install按钮。图1-10 安装确认

等待一段时间后,安装完成,提醒用户进行MATLAB激活,如图1-11所示。图1-11 软件激活

单击Next按钮,得到软件激活方式对话框,选择不通过网络的手动激活方式,如图1-12所示。图1-12 手动激活

通过单击Next按钮,得到如图1-13所示的对话框,选择许可文件的存放路径及许可文件名称,然后单击浏览(Browse)按钮。图1-13 安装许可文件

单击浏览按钮后,依次打开图1-1中的crack子目录,然后根据图1-5中的install.txt文件中安装序列号的不同,选择相应的激活文件,这里选择的是单机安装(lic_standalone.dat)激活方式,如图1-14所示。图1-14 激活方式

单击Select按钮,完成许可文件的安装,最终完成激活,如图1-15所示,单击图中Finish按钮,完成整个安装过程。图1-15 完成激活1.3 MATLAB操作界面介绍

启动MATLAB时,第一件事就是查看MATLAB界面,如图1-16所示,它包括一些子窗口及菜单栏和工具栏。

MATLAB的菜单栏包括7个菜单项,其中File菜单实现有关文件的操作,Edit菜单用于命令窗口的编辑操作,Debug菜单用于程序调试,Parallel菜单用于设置并行计算的运行环境,Desktop菜单用于设置MATLAB集成环境的显示方式,Window菜单用于关闭所有打开的编辑器窗口或选择活动窗口,Help菜单用于提供帮助信息。

MATLAB界面包括表1-1中的几种工具窗口,在默认情况下,它们中间有一些没有显示,如果更喜欢命令行界面,可以用等价的函数完成界面工具可以完成的任务。图1-16 MATLAB 界面表1-1 MATLAB界面工具1.3.1 命令窗口

命令窗口是用于输入数据、运行MATLAB函数和脚本并显示结果的主要工具之一。命令窗口没有打开时,从Desktop菜单中选择Command Window选项可以打开它。命令窗口如图1-17所示。

如果更喜欢简单的没有其他工具窗口的命令行界面,依次选择Desktop→Desktop Layout→Command Window Only菜单选项。“>>”符号是输入函数的提示符,表示MATLAB处于准备状态。MATLAB具有良好的交互性,当在提示符后输入一段正确的运算式时,只需按Enter键,命令窗口就会直接显示运算结果。

例1.1 计算一个圆的面积,假设圆的半径为3。

在命令窗口中输入如下内容:

>>area=pi*3^2

按Enter键确认输入,如图1-18所示,即可以得到如下结果:

area =

28.2743

同时MATLAB的提示符“>>”不会消失,这表明MATLAB继续处于准备状态。图1-17 命令窗口图1-18 得到结果

注意:pi是MATLAB预先定义好的变量,所以不需要预先声明。结果被计算出来之后存储到一个叫area的变量中(其实是一个1×1的数组),而且这个变量能进行进一步的计算。

一般来说,一个命令行输入一条命令,命令行以回车键结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一个命令后带有分号,则逗号可以省略。

例1.2 在MATLAB命令窗口中输入下面的命令:

>> x=123,y=456

x =

123

y =

456

>> x=123;y=456

y =

456

以上两个命令行都是合法的,第1个命令行执行后显示x和y的值,第2个命令行因命令x=123后面带有分号,x的值不显示,而只显示y的值。

如果一个命令行很长,在一行内书写不下,可能要另起一行接着写,在这种情况下我们需要在第一行末打上半个省略号“…”并按下回车键,然后接着下一行继续写命令的其他部分。其中的半个省略号“…”称为续行符,即把下面的命令行看作该行的逻辑继续。

例1.3 下面的两条语句是等价的:

x1=1+2+3+4+5+6+7+8+9;

x1=1+2+3+4+5+6…

+7+8+9;

这是一个命令行,但是占用了两个物理行,第1个物理行以续行符结束,第2个物理行是上一行的继续。

将一系列命令写入一个文件,在命令窗口输入此文件的文件名,然后MATLAB就开始执行这个文件,而不是用直接在命令窗口键入的方法,这样的文件叫做脚本文件,由于脚本文件的扩展名为“.m”,所以它也叫做M文件。1.3.2 命令历史窗口

在默认设置下,命令历史窗口自动显示于MATLAB界面中,用户也可以选择Desktop→Command History命令调出或隐藏该命令窗口,命令历史窗口也可以浮动在主窗口上。如图1-19所示。图1-19 命令历史窗口

命令历史窗口显示用户在命令窗口中所输入的每条命令的历史记录,并标明使用时间,这样可以方便用户的查询,如果用户想再次执行某条已经执行过的命令,只需在命令历史窗口中双击该命令;如果用户需要从命令历史窗口中删除一条或多条命令,只需选中这些命令,并单击鼠标右键,在弹出的快捷菜单中选择Delete Selection命令即可。1.3.3 工作空间窗口

工作空间(Workspace)是MATLAB用于存储各种变量和结果的内存空间。工作空间窗口是MATLAB集成环境的重要组成部分,它与MATLAB命令窗口一样,不仅可以内嵌在MATLAB的工作界面,还可以以独立窗口的形式浮动在界面上,用户也可以选择Desktop→Workspace命令调出或隐藏该工作空间窗口,浮动的工作空间窗口如图1-20所示。在该窗口中显示工作空间中所有变量的名称、数值和最大值、最小值,可对变量进行观察、编辑、保存和删除。图1-20 工作空间窗口

注意:在MATLAB命令窗口中运行的所有命令都共享一个相同的工作空间,所以它们共享所有的变量,初学者应当重视。1.3.4 当前目录窗口

MATLAB系统本身包含了数目繁多的文件,再加上用户自己开发的文件,更是数不胜数。如何管理和使用这些文件是十分重要的。为了对文件进行有效的组织和管理,MATLAB有清晰的目录结构,不同类型的文件放在不同的目录下面,而且通过路径来搜索文件。

当前目录是指MATLAB运行时的工作目录,只有在当前目录或搜索路径下的文件、函数才可以被运行或调用。如果没有特殊说明,数据文件也将存放在当前目录下。为了便于管理文件和数据,用户可以将自己的工作目录设置成当前目录,从而使得用户的操作都在当前目录中进行。

当前目录窗口也称为路径浏览器,它可以内嵌在MATLAB的主窗口中,也可以浮动在主窗口上。在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件及相关信息,通过目录下拉列表框可以选择已经访问过的目录。单击当前路径列表框右侧的浏览按钮,可以打开路径选择对话框,用户可以设置或添加路径。

将用户目录设置成当前目录也可以使用cd命令。例如,将用户目录e:\matlab\work设置为当前目录,可以在命令窗口输入命令:

cd e:\matlab\work1.4 MATLAB帮助系统

MATLAB是功能强大的应用软件,具有许多内置函数和功能完备的工具箱,各种命令和函数数以百计,而每条命令都有自己独特的参数,每个函数也都有不同的参数和返回结果。面对这么多的函数和功能,每个人都不可能精通每个函数和命令,即使对那些常用的命令和函数也是如此。那么当需要某个函数而又不了解它的具体用法时,一个办法就是查手头的资料,这通常是不太现实的,即使有合适的资料供查找,也很费时间,另一个办法就是利用MATLAB的在线查找功能。MATLAB提供了非常完备的在线查找功能,在使用过程中,可以发现,理解、掌握和精通这种方法是非常必要和有效的。对于查询系统的调用方式而言,有以下3种方式。

·在MATLAB的帮助窗口中获得帮助信息。

·在MATLAB工作空间的命令行中直接键入帮助命令,这种方法直接了当,获得信息简捷而迅速,最为常用。

·利用MATLAB提供的强大的在线帮助桌面(这里面提供了按字母排序的指令索引表和按内容排序的指令索引表,还提供了功能强大的搜索引擎),在线查找各类信息,并可以运用逻辑关系运算,功能最为强大。

这3种方式各有特色,灵活运用一般都能查到所需要的信息,下面将分别介绍这3种查找方式。1.4.1 帮助窗口

MATLAB帮助界面相当于一个帮助信息浏览器,使用帮助界面可以搜索和查看所有MATLAB的帮助文档,还能运行有关演示程序。单击MATLAB主窗口工具栏中的Help按钮即可启动Help Window窗口,界面如图1-21所示,该窗口包括左边的帮助向导页面和右边的帮助显示页面两部分。在左边的帮助向导页面选择帮助项目名称或图标,将在右边的帮助显示页面中显示对应的帮助信息。图1-21 帮助窗口

在左上角的文本框内可以输入要查找的主题,然后按Enter键即可在下面的文本框内显示相关主题的查找结果。Search Results选项卡显示与当前查找的主题相关的其他主题,可以单击某个条目来显示这个主题的内容,以便充分了解某个命令和函数。单击Back按钮可以回到上一次显示的内容,单击Forward按钮可以跳到下一个显示内容。

在帮助向导页面中包含4个可供选择的选项卡,Contents选项卡用来查看帮助的主题,Search Results选项卡查找指定的单词。MATLAB的帮助文档除了超文本格式外,还具有PDF格式的帮助文档。PDF格式文件可用Adobe Acrobat Reader阅读。1.4.2 帮助命令

在命令行中可以配合使用doc、help、lookfor、exit、which、who、whos、what等命令来对函数、文件、变量和目录等信息进行查找。

在命令窗口中输入doc function可以直接启动帮助桌面并显示与function有关的HTML格式的帮助信息。如doc which,即可得到与which命令有关的信息。

如果想知道eig的有关信息,可以这样操作:

>>which eig –all

按Enter键,结束输入并执行命令,可以得到如下结果:

built-in (D:\Program Files\MATLAB\R2011b\toolbox\matlab\matfun\@single\eig)% single method

built-in (D:\Program Files\MATLAB\R2011b\toolbox\matlab\matfun\@double\eig)% double method

D:\Program Files\MATLAB\R2011b\toolbox\distcomp\parallel\@codistributed\eig.m % codistributed method

D:\Program Files\MATLAB\R2011b\toolbox\symbolic\symbolic\@sym\eig.m % sym method

如果对第4个条目感兴趣,则继续输入:

>>help 'D:\Program Files\MATLAB\R2011b\toolbox\symbolic\symbolic\@sym\eig.m'

按Enter键,结束输入并执行命令,可以得到如下结果:

eigSymbolic eigenvalues and eigenvectors.

With one output argument, LAMBDA = eig(A)is a symbolic vector containing the eigenvalues of a square symbolic matrix A.

With two output arguments, [V,D] = eig(A)returns a matrix V whose columns are eigenvectors and a diagonal matrix D containing eigenvalues.

If the resulting V is the same size as A, then A has a full set of linearly independent eigenvectors which satisfy A*V = V*D.

With three output arguments, [V,D,P] also returns P, a vector of indices whose length is the total number of linearly independent eigenvectors, so that A*V = V*D(P,P). If A is n-by-n, then V is n-by-m where n is the sum of the algebraic multiplicities and m is the sum of the geometric multiplicities.

LAMBDA = eig(VPA(A))and [V,D] = eig(VPA(A))compute numeric eigenvalues and eigenvectors using variable precision arithmetic. If A does not have a full set of eigenvectors, the columns of V will not be linearly independent.

Examples:

[v,lambda] = eig([a,b,c; b,c,a; c,a,b])

R = sym(rosser);

eig(R)

[v,lambda] = eig(R)

eig(vpa(R))

[v,lambda] = eig(vpa(R))

A = sym(gallery(5))does not have a full set of eigenvectors.

[v,lambda,p] = eig(A)produces only one eigenvector.

See also sym/poly, sym/jordan, sym/svd, sym/vpa.

此外,想了解所有与fourier关键字有关的函数的信息,可以输入:

>> lookfor fourier

按Enter键,结束输入并执行命令,可以得到如下结果:

fft     - Discrete Fourier transform.

fft2     - Two-dimensional discrete Fourier Transform.

fftn     - N-dimensional discrete Fourier Transform.

ifft     - Inverse discrete Fourier transform.

ifft2     - Two-dimensional inverse discrete Fourier transform.

ifftn     - N-dimensional inverse discrete Fourier transform.

然后输入想了解的函数名,如help fft,即可得到相应的信息。

又如想了解目录 D:\Program Files\MATLAB\R2011b\toolbox\matlab\polyfun\下都有哪些有用的函数命令,可以这样操作:

>>what('D:\Program Files\MATLAB\R2011b\toolbox\matlab\polyfun\')

按Enter键,结束输入并执行命令,可以得到如下结果:

M-files in directory D:\Program Files\MATLAB\R2011b\toolbox\matlab\polyfun

Contents delaunayn inpolygon interpn polyfit qhull tsearchn

automesh dsearch interp1 mkpp polyint rectint unmkpp

convhull dsearchn interp1q pchip polyval roots voronoin

convhulln griddata interp2 poly polyvalm spline xychk

delaunay griddata3 interp3 polyarea ppval splncore xyzchk

delaunay3 griddatan interpft polyder pwch tsearch xyzvchk

Classes in directory D:\Program Files\MATLAB\R2011b\toolbox\matlab\polyfun

DelaunayTri  TriRep  TriScatteredInterp griddedInterpolant

又如想了解who函数的具体用法,这样输入:

>>help who

按Enter键,结束输入并执行命令,可以得到如下结果:

who List current variables.

who lists the variables in the current workspace.

In a nested function, variables are grouped into those in the nested function and those in each of the containing functions. who displays only the variables names, not the function to which each variable belongs. For this information, use WHOS. In nested functions and in functions containing nested functions, even unassigned variables are listed.

WHOS lists more information about each variable.

who GLOBAL and WHOS GLOBAL list the variables in the global workspace.

who -FILE FILENAME lists the variables in the specified .MAT file.

who ... VAR1 VAR2 restricts the display to the variables specified. The wildcard character '*' can be used to display variables that match a pattern. For instance, who A* finds all variables in the current workspace that start with A.

who -REGEXP PAT1 PAT2 can be used to display all variables matching the specified patterns using regular expressions. For more information on using regular expressions, type "doc regexp" at the command prompt.

Use the functional form of who, such as who('-file',FILE,V1,V2),when the filename or variable names are stored in strings.

S = who(...)returns a cell array containing the names of the variables in the workspace or file. You must use the functional form of who when there is an output argument.

Examples for pattern matching:

who a*      % Show variable names starting with "a"

who -regexp ^b\d{3}$  % Show variable names starting with "b"

% and followed by 3 digits

who -file fname -regexp \d % Show variable names containing any

% digits that exist in MAT-file fname

See also whos, clear, clearvars, save, load.

Overloaded methods:

Simulink.who

Reference page in Help browser

doc who

从这些信息可以看出,who命令的在线帮助信息对who命令语句的说明是非常详细的,完全可以在不了解who命令的具体用法的基础上,查看其帮助信息来学习who命令的具体用法,同时可以在MATLAT环境下使用,其学习效果更加明显。

同样,可以通过help rand命令来显示rand函数的帮助说明:

>>help rand

按Enter键,结束输入并执行命令,可以得到如下结果:

rand Uniformly distributed pseudorandom numbers.

R = rand(N)returns an N-by-N matrix containing pseudorandom values drawn from the standard uniform distribution on the open interval(0,1). rand(M,N)or rand([M,N])returns an M-by-N matrix. rand(M,N,P,...)or

rand([M,N,P,...])returns an M-by-N-by-P-by-... array. rand returns a scalar. rand(SIZE(A))returns an array the same size as A.

Note: The size inputs M, N, P, ... should be nonnegative integers.

Negative integers are treated as 0.

R = rand(..., 'double')or R = rand(..., 'single')returns an array of uniform values of the specified class.

The sequence of numbers produced by rand is determined by the settings of the uniform random number generator that underlies rand, RANDI, and RANDN. Control that shared random number generator using RNG.

注意:MATLAB命令窗口里显示的帮助信息用大写来突出函数名,但在使用函数时,要用小写。

MATLAB按照函数的不同用途分别存放在不同的子目录下,用相应的帮助命令可显示某一类函数。例如,所有的线性代数函数均收在matfun子目录下,用命令

>>help matfun

可显示所有线性代数函数。

又如,当用户知道某函数名而不知道其用法时,help命令可以帮助用户正确地了解此函数的用法。若需查找一个不知道其确切名称的函数时,help命令就远远不能满足需要了。这种情况下,可以用lookfor命令来查询根据用户提供的关键字搜索相关的函数。Llookfor通过对MATLAB搜索路径中的每个M文件的注释区的第一行进行扫描,一旦发现此行中含有所查询的关键字,则将该函数名及第一行注释全部显示在屏幕上。例如,输入命令:

>>lookfor simulink

按Enter键,结束输入并执行命令,可以得到如下结果:

rptfpmethods   - A reference object for Simulink Fixed Point

cgslblock   - Constructor for calibration Generation Simulink

block parsing manager

cgslparser   - parse Simulink diagram to produce expression for

CAGE feature

zslmethods   - Simulink report generation methods

slTunable   - Interface for control system tuning in Simulink.

slTunableBlock  - Simulink Tunable Block Object.

printprepare   - Method to modify a Figure or Simulink model for

printing.

printrestore   - Reset a Figure or Simulink model after printing.

simulinkrc   - Master startup M-file for Simulink

由以上几个例子可以看出,灵活运用上面的几个命令可以得到所需要的大多数信息,足以看出MATLAB在线帮助功能的强大。1.4.3 MATLAB远程帮助系统

MATLAB语言是当今国际上科学界(尤其是自动控制领域)最具影响力、也最有活力的软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口功能。MATLAB语言在各国高校与研究单位起着重大的作用。在Internet迅速发展的今天,网络成为人们获取信息的最佳途径,而MathWorks公司更是特别注意网络在知识传播方面的巨大作用,它的最新资料都会及时地在相关网站上发布。而且MathWorks公司和用户之间有着良好的交互性,用户在使用中有什么需求或疑问可以直接通过E-mail与MathWorks公司联系。

MathWorks公司的相关资源网址如下。

·主页:http://www.mathworks.com

·匿名FTP服务:ftp.Mathworks.com

·ftp.Mathworks.com的映像站点:Novell.felk.cvut.cz

·新闻组:comp.soft-sys.matlab

·www及FTP的IP地址:144.212.100.10

MathWorks公司的技术服务联系方式如下。

·技术支持:support@mathworks.com

·BUG报道:bugs@mathworks.com

·文档报道:doc@mathworks.com

·升级建议:suggest@mathworks.com

·订购信息:service@mathworks.com

·订户信息:subscriber@mathworks.com

·一般信息:info@mathworks.com

·PC以及MAK的升级信息:micro-updates@mathworks.com

·文件库:matlib@mathworks.com

·MATLAB文摘:digest@mathworks.com

·FTP站点:ftpadmin@mathworks.com

·网络主管:webmaster@mathworks.com

此外,国内还有许多关于MATLAB应用于学习的网站,读者也可以从中获取大量有益的信息,比较有名的如下。

·清华大学水木清华bbs站点:bbs.tsinghua.edu.cn

·北京大学北大未名bbs站点:bbs.pku.edu.cn

·中国仿真互动论坛:http://www.simwe.com

·东北大学薛定宇教授维护的MATLAB大观园站点:http://www.matlb-world.com1.5 本章小结

本章主要介绍了MATLAB的发展过程及其主要特点。在此基础上,对MATLAB的安装过程、工作环境以及帮助系统做了比较详细的介绍。其中,对运行环境的启动、工作环境、命令窗口、历史命令窗口、目录和文件管理、搜索路径管理、工作空间和数据编辑器及工作空间数据的保存等内容做了全面的介绍。通过这些内容的介绍,读者可以更快地熟悉MATLAB的工作和运行环境,为深入学习后面章节打下更好的基础。第2章MATLAB基础知识

一般运算符及操作符

数据格式显示

关系运算符

逻辑运算及逻辑函数

字符串操作

数值数据类型

函数和特殊函数简明介绍

数组

单元数组和结构体

本章小结

MATLAB语言以前是一种专门为进行矩阵计算所设计的语言,在以后的各个版本中逐步扩充其各种功能。现在MATLAB不仅仅局限于矩阵计算领域,但其最基本、最重要的功能还是进行实数矩阵和复数矩阵的运算。在本章中,主要介绍MATLAB语言及命令的主要基本知识,这是MATLAB的最基本和最重要的部分,对本章内容的深入理解和掌握是对其他各章进行理解和运用并对MATLAB进行扩展的基础。用户在学习完本章的内容后,可以进行基本的数值计算,从而能够轻松地解决许多学习和科研中遇到的计算问题。2.1 一般运算符及操作符

一般运算符和操作符构成运算的最基本的操作指令,如加、减、乘、除和乘方等运算,这些运算指令几乎在所有计算机语言中都有,且大同小异。在MATLAB中,几乎所有的操作都是以矩阵为基本运算单元的,这与其他计算机语言有很大不同,也是MATLAB的重要特点,在以后的学习中应该充分理解和注意。2.1.1 运算符

1.矩阵的加减运算

其基本形式为X±Y,X和Y必须为同维的矩阵,此时各对应元素相加减。如果X与Y的维数不相同,则MATLAB将给出错误信息,提示用户两个矩阵的维数不匹配。

例2.1 MATLAB中的矩阵加减运算。

X=

2 3

4 5

Y=

3 4

4 3

>>X+Y

ans =

5 7

8 8

>>X-Y=

ans =

-1 -1

0 2

2.矩阵的乘法运算

X*Y是两个矩阵X和Y的乘积,其中X和Y必须满足矩阵相乘的条件,即矩阵X的列数必须等于矩阵Y的行数。如果其中一个为1×1矩阵也合法,此时便是将每一个矩阵的元素都分别与这个数值相乘。

例2.2 MATLAB中的矩阵乘法运算。

>>X*Y

ans =

18 17

32 31

>>X*2

ans =

4 6

8 10

3.矩阵的数组乘法

X.*Y运算结果为两个矩阵的相应元素相乘,得到的结果与X和Y同维,此时X和Y也必须有相同的维数,除非其中一个为1×1矩阵,此时运算法则与X*Y相同。

例2.3 MATLAB中的数组乘法运算。

>> X.*Y

ans =

6 12

16 15

>> 2.*X

ans =

4 6

8 10

4.矩阵的乘方运算(1)x^Y表示,如果x为数,而Y为方阵,结果由各特征值和特征向量计算得到。(2)X^y表示,如果X是方阵、y是一个大于1的整数,所得结果由X重复相乘y次得到;如果y不是整数,则将计算各特征值和特征向量的乘方。(3)如果X和Y都是矩阵,或X或Y不是方阵,则会显示错误信息。

例2.4 MATLAB中的矩阵乘方运算。

>> X^2

ans =

16 21

28 37

>> X^1.5

ans =

5.9125 - 0.1007i 7.7970 + 0.0573i

10.3960 + 0.0764i 13.7095 - 0.0434i

>> 2^Y

ans =

64.2500 63.7500

63.7500 64.2500

5.矩阵的数组乘方

X.^Y的计算结果为X中元素对Y中对应元素求幂,形成的矩阵与原矩阵维数相等,这里X和Y必须维数相等,或其中一个为数,此时运算法则等同于X^Y。

例2.5 MATLAB中的数组乘方运算。

>> X.^Y

ans =

8 81

256 125

6.矩阵的左除运算

A\B称作矩阵A左除矩阵B,其计算结果大致与INV(A)B相同,但其算法却是不相同的。如果A是N×N的方阵,而B是N维列向量,或是由若干N维列向量组成的矩阵,则X=A\B是方程AX=B的解,X与B的大小相同,对于X和B的每个列向量,都有AX(n)=B(n),此解是由高斯消元法得到的。很显然,A\EYE(SIZE(A))=INV(A)EYE(SIZE(A))=INV(A)。如果A是M×N的矩阵(M≠N),B是M维列向量或由若干M维列向量组成的矩阵,则X=A\B是欠定或超定方程AX=B的最小二乘解。A的有效秩L由旋转的QR分解得到,并至多在每列L个零元素上求解。

例2.6 MATLAB中的矩阵左除运算。

A =

1 2

3 4

B =

2 3

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载