内容简介
《精通MATLAB R2011a》由纸质媒体和电子媒体有机结合而成。纸质媒体便于读者进行系统、全面、长时间连续地阅读,便于随心翻阅、浏览;而电子媒体向读者提供色彩信息和动态交互的软件环境,提供读者实践《精通MATLAB R2011a》内容所需的各种文件。
《精通MATLABR2011a》包含MATLAB使用和数学知识的丰富层次。编著《精通MATLAB R2011a(附光盘1张)》有四个主要目的:(1)帮助初学者顺利跨入MATLAB大门;(2)全面、多层次、细致而深入地叙述MATLAB中数值、字符串、胞元、构架、逻辑、函数句柄六种重要数据类型的应用规则、相互配用和编程规范;(3)由浅入深地阐述MATLAB三种建模、分析、仿真环境——数值计算、符号计算和Simulink环境的特征和使用要领;(4)以实例讲述MATLAB代表的现代计算能力对传统算法和思维的影响。《精通MATLAB R2011a》包含276个算例。所有算例的程序都是可靠、完整的。读者可以完整、准确地重现《精通MATLAB R2011a》所提供的算例结果,以掌握要领,举一反三,到达灵活应用的境地。《精通MATLAB R2011a》正文和算例所涉及的指令全部罗列在“附录C索引”中。该索引与目录组合,可为读者提供比较完善的快速查阅环境。随书光盘中包含:黑白纸质印刷版无法表现的各种彩色图形;用Mbook模板制作的“活性”的各章DOC文档;各算例运行所需的M文件和MAT数据文件;Simulink块图模型的MDL文件;图形用户界面的FIG文件。《精通MATLABR2011a》既可作为理工科院校研究生、本科生系统学习的教材,又可以作为广大科技工作者借助MATLAB进行科学计算及仿真的自学和参考用书。
经常书评
《精通Matlab6.5》是我学习Matlab的入门教程,它综合性强,内容详细,实例也很有特点,能够涵盖住所述知识点,并给出扩展。我曾经阅读《精通Matlab6.5》八遍左右,每一次都有收获。
期待《精通MatlabR2011a》的出版,因为随着科学技术的发展,Matlab也在不断的退出新版,功能越来越强大。希望《精通MatlabR2011a》再续《精通Matlab6.5》的辉煌,为广大莘莘学子提供帮助。
——lyqmath
次接触《精通MATLAB 6.5》还是在大学本科时,《精通MATLAB 6.5》是我大学选修课的一本推荐教程。那时候的主流的MATLAB版本还是6.5版。由于是理学专业,对科学计算的要求比较高。所以很多课程上都会用到MATLAB。同时在大学期间,参加了大学生科技创新项目以及数学建模,所以MATLAB成为了我必备的一个编程工具,与此同时《精通MATLAB 6.5》也就成了经常放在手边的一个得力的工具书。这本书陪伴我顺利完成了科技创新项目、数学建模,以及课堂上的各种编程实践作业,通过这个过程也积累了很多MATLAB的经验和技巧。
由于MATLAB语言的特殊性,例如矩阵处理,它的一些语言规则与其他语言不同,所以很多细小的技巧和语法会经常忘掉,但是《精通MATLAB 6.5》解决了这个难题,它里面有丰富的实例,同时也有系统的讲解,我们随时都可以翻阅和查询,能够快速得出解决方案。所以,我个人认为这还是一本MATLAB领域中文版难的一本系统工具书。
时间飞逝,转眼间,硕士毕业,博士也已开始,又重新返回到了崇尚科学计算的科研大军中。而MATLAB这个工具又一次进入我的视野。如今,MATLAB版本已经升级到了matlab2011a版本。上半年在ILOVEMATLAB论坛中,参加了关于matlab2011a中C语言与MATLAB语言无缝转换的工具包,听了之后,非常震撼。个人认为,这个是MATLAB向主流语言进军迈出的一大步,因为这个工具包已经是很多人期待很久的东西了。
作为MATLAB以及《精通MATLAB 6.5》的忠实粉丝,非常希望《精通matlab2011a》能够有更多和更新的信息提供给用户,能够在为MATLAB的普及和发展做出重要的贡献,同时希望为更多的科研人员提供给帮助,成为一笔隐形的财富。
——cheewii
目录
第1章 基础准备及入门
1.1 MATLAB的安装和工具包选择
1.2 Desktop操作桌面的启动
1.2.1 MATLAB的启动
1.2.2 Desktop操作桌面简介
1.3 CommandWindow运行入门
1.3.1 CommandWindow指令窗简介
1.3.2 最简单的计算器使用法
1.3.3 数值、变量和表达式
1.数值的记述
2.变量命名规则
3.MATLAB默认的数学常数
4.运算符和表达式
5.面向复数设计的运算——MATLAB特点之一
6.面向数组设计的运算——MATLAB特点之二
1.4 CommandWindow操作要旨
1.4.1 指令窗的显示方式
1.默认的输入显示方式
2.运算结果显示
3.显示方式的永久设置
1.4.2 指令行中的标点符号
1.4.3 常用控制指令
1.4.4 指令窗中指令行的编辑
1.5 历史指令窗(Command History)
1.5.1 Command History历史指令窗简介
1.5.2 历史指令的再运行
1.6 当前目录浏览器(Current Directory)、路径设置器和文件管理
1.6.1 当前目录浏览器简介
1.6.2 用户目录和当前目录设置
1.6.3 MATLAB的搜索路径
1.6.4 MATLAB搜索路径的扩展
1.何时需要修改搜索路径
2.利用设置路径对话框修改搜索路径
3.利用指令path设置路径
1.7 工作空间浏览器和变量编辑器
1.7.1 工作空间浏览器和变量可视化
1.7.2 工作空间的管理指令
1.查询指令who及whos
2.从工作空间中删除变量和函数的指令clear
3.整理工作空间内存碎片的指令pack
1.7.3 VariableEditor变量编辑器
1.7.4 数据文件和变量的存取
1.借助工作空间浏览器产生保存变量的MAT文件
2.借助输入向导ImportWizard向工作空间装载变量
3.存取数据的操作指令save和load
1.8 Editor/Debugger和脚本编写初步
1.8.1 Editr/DebuggerM文件编辑器简介
1.8.2 M脚本文件编写初步
1.9 帮助系统及其使用
1.9.1 帮助体系的三大系统
1.9.2 常用帮助指令
1.函数搜索指令
2.词条搜索指令
1.9.3 Help帮助浏览器
1.帮助浏览器的导出
2.帮助浏览器界面简介
3.帮助浏览器默认显示的利用
第2章 数值数组及向量化运算
2.1 数值数组的创建和寻访
2.1.1 一维数组的创建
1.递增/减型一维数组的创建
2.其他类型一维数组的创建
2.1.2 二维数组的创建
1.小规模数组的直接输入法
2.中规模数组的数组编辑器创建法
3.中规模的M文件创建法
4.利用MATLAB函数创建数组
2.1.3 二维数组元素的标识和寻访
1.数组的维数和大小
2.数组的标识和寻访
2.1.4 数组的扩缩和特殊操作
1.数组的扩充和收缩
2.数组的特殊操作
3.数组操作函数
2.2 数组运算
2.2.1 数组运算的由来和规则
1.函数关系数值计算模型的分类
2.提高程序执行性能的三大措施
3.数组运算规则
4.数组运算符及数组运算函数
2.2.2 数组运算和向量化编程
2.2.3 数组特殊运算指令汇总
2.3 高维数组
2.3.1 高维数组的创建
2.3.2 高维数组的孤维删除
2.3.3 高维数组的维度重排
2.4 “非数”和“空”数组
2.4.1 非数NaN
2.4.2 “空”数组
2.5 关系操作和逻辑操作
2.5.1 关系操作
2.5.2 逻辑操作
2.5.3 常用逻辑函数
第3章 字符串、胞元和构架数组
3.1 MATLAB的数据类型
3.2 字符串数组
3.2.1 串数组的属性和标识
3.2.2 复杂串数组的创建
1.多行字符串数组的创建
2.利用胞元数组创建复杂字符串
3.2.3 串转换函数
3.2.4 串操作函数
3.3 胞元数组
3.3.1 胞元数组的创建和显示
1.胞元标识寻访和内容编址寻访的不同
2.胞元数组的创建和显示
3.3.2 胞元数组的扩充、收缩和重组
3.3.3 胞元数组内容的获取和配置
3.3.4 胞元与数值数组之间的转换
3.3.5 对胞元数组运算的cellfun指令
3.3.6 胞元数组的操作函数汇总
3.4 构架数组
3.4.1 构架数组的创建和显示
1.直接创建法及显示
2.利用构造函数创建构架数组
3.4.2 构架数组域中内容的调取和设置
3.4.3 构架数组的扩缩、域的增删和域名重排
3.4.4 构架数组和胞元数组之间的转换
3.4.5 对构架域运算的struct
前言/序言
1.编写背景
MATLAB(MATrix LABoratory)自20世纪80年代初问世以来,历经30年的实践检验、市场筛选和时间凝炼,已成为科学研究、工程技术等众多领域最可信赖的科学计算环境和标准仿真平台,成为高等教学必须传授的学习和计算软件,成为学术演讲、交流中实验数据和曲线图形的来源。
近年我国经济发展迅猛,“便携式个人电脑 + MATLAB”的配置工具在高校、科研院所以惊人的速度迅速普及。这使得理工科高校的每位师生、科研院所的每位研发人员都拥有了前所未有的巨大“计算潜能”。原有的研究方法、设计程式、论文写作方式以及教学内容等都必将受到这种新的“计算潜能”的巨大的冲击。
为缓和巨大计算潜能和原有教材之间的矛盾,国内外理工科高校教材几乎都作出了把MATLAB引进教材的努力。这种努力大致可分为两个层面。第一层面,完全不改变原有教材内容,而仅把MATLAB作为“手算的替身”用于相关内容的算例习题解算。第二层面,对原有教材中“那些手算所不能处理”的内容加以改变,而成为由MATLAB实施的新章节;或把原教学大纲中“那些采用硬件设备进行”的实验改成MATLAB仿真。
MATLAB对我国高等教学的影响,虽然比国外晚10年左右,但变化之迅速却远非欧美所及。在几乎“人手一机”和MATLAB普及使用的高校里,无论是教师或学生,也不管有意识思考还是无意识感受,都会时时面临一个共同的问题:拥有崭新电脑工具的我们还有必要循着计算尺时代形成的模式去学习分析和综合设计吗?
硬件的低成本化、外界的需求又反过来推动MATLAB自身的改变和发展。近30年的历练,MATLAB已经从纯指令操作软件发展为在各种界面进行交互式操作的平台,从单纯的分析、计算软件发展成为集计算、仿真、硬件开发于一体的综合环境,从单一学科辅助工具扩展为多门类多学科的计算资源库。
2.编写宗旨及特点
本书作者自2000年编写《精通MATLAB 5.3版》和2003年编写《精通MATLAB 6.5版 》以来,主要精力一直投入于以MATLAB为工具的控制、信号处理及智能计算等研究。与此同时,随着MATLAB的不断升级,每年也为《精通》一书写些修订和增补文档,直接服务于面向本校学生的MATLAB课程。在此七、八年期间,本书作者曾多次尝试《精通》一书的修订,但终因时间不足,致半途而废。
2008年秋,MATLAB的默认符号计算引擎由Maple更换为MuPAD。这一重大变化促使本书作者下定“重写《精通》”的决心。此后,历时2年多,完成此书初稿,共1150页(A4版面)。这样大的篇幅令人尴尬。一方面,恐因篇幅过大,而束缚对内容深度与广度应有的舒展;另方面,这千余页篇幅,无疑不便于读者使用。经与编辑多次商讨后,决心对MATLAB与C、C++等外部程序关联的内容作“切除留后”处理,对MATLAB“自封闭”内容则进行了削枝强干的调整。
现在本书具有如下几个特点。
秉承《精通MATLAB 6.5版》的编写宗旨:全面地多层次地描述MATLAB的通用功能。“全面及多层次”表现为:
本书对MATLAB本身的入门引导写得相当细腻,即使是对MATLAB一无所知的读者,也可以循着本书的第1章,顺利跨入门槛。
对于那些不大熟悉数值、符号、Simulink等计算、建模的读者来说,只要找到相关章节,沿着若干初始算例树立的“路标”,循序渐进,就能很快通过自我学习获得熟练运用的能力。
涉及MATLAB较深应用层面,如数值计算泛函指令的参数传递、符号变量的非负、整数域约束及跨空间计算、Simulink的信息流控制、图形用户界面回调函数编写等内容,本书的阐述也都可以为读者解除困惑。
本书276个算例中的绝大多数都是相对独立的,都配有可实际运行的完整解算指令。即使MATLAB新手,或对算例所涉及知识不甚了解的读者,只要循序操作算例指令,并阅读指令后的相关解释,也能顺利实践,获得启发后,更可举一反三。
继续保持《精通MATLAB 6.5版》的编写传统:在避免囫囵吞枣的限度内,尽可能简明完整地透析MATLAB指令、Simulink模块的数学本质及其应用。例如:
依托有限差分、积分等章节的算例,揭示建立在“浮点数系”基础上的数值计算,如何受“精度、空间、时间”等微观、宏观测度有限性的影响。
借助奇异值分解阐述秩、范、子空间等矩阵结构计算的数值本质,借助特征值分解描述矩阵函数的计算本质。
鉴于MATLAB R2011a版关于随机流概念的系统归纳和rng新指令的给出,本书用较多篇幅阐述了伪随机流、随机序列的创建、重现控制和独立性控制的多种方法。此外,还简明描述了均值、偏差、斜度、峭度等统计量的几何意义及计算指令。
提出求取系统传递函数的代数方程符号法,此法不仅系统性强而不依赖“人工技巧”,而且还原了梅逊信流图法的数学实质。
借助积分模块的两种不同数学表述,隐喻Simulink积分解算方式与数值积分指令的本质差异——前者体