1内容简介本书由纸质媒体和电子媒体有机结合而成。纸质媒体便于读者进行系统、全面、长时间连续地阅读,便于随心的翻阅、浏览;而电子媒体向读者提供色彩信息、动态交互的软件环境,提供读者实践本书内容所需的各种文件。本书第一章系统讲述MATLAB6.5的集成工作平台,引导读者初会MATLAB基本用法。第二、三章系统叙述MATLAB6.1的四大基本数据类型(数值数组、字符串数组、元胞数组、构架数组),至于其它扩展数据类型(函数句柄、符号数据、内联函数、unit数组、稀疏类)则另辟章节专述。此后,本书用九个独立章分述MATLAB6.5的数值计算、符号计算、函数和数据可视、面向对象编程、GUI交互操作界面设计、EXE独立应用程序生成、实现不同软件平台交互的API、M-book数据图形文字环境集成等八大通用功能。本书用专门的一章深入浅出地阐明SIMULINK的分层建模、仿真功能、与MATLAB交互的功能。全书包含390多个计算范例。所有算例的程序是可靠、完整的。读者可以在自己的MATLAB环境中完全准确地重现本书所提供的算例结果。算例的举一反三,将使读者很快掌握要领,从模仿走向灵活应用。书中正文(包括算例)所涉及的指令全部罗列在附录的“A索引”中,用户很容易根据关键字符找到相关的正文说明和算例应用。本书随带包含700多个文件的光盘。光盘文件包含:可直接在Notebook中运行的全部算例的M-bookDOC文件;可在MATLAB环境中直接运行的算例M和MDL文件;可供读者实践MATLAB编译器及API的所有文件;可在PowrPoint中放映幻灯的PPT文件。它们不仅有效地提供了纸质媒体所不具备的交互能力和色彩感染力,而且弥补了纸质媒体没有SIMULINK模型源码文件、没有PPT源码文件、没有编译源文件和验证文件的缺陷。本书既可作为理工科院校研究生、本科生系统学习的教材,又可以作为广大科技工作者掌握和精通MATLAB的自学用书和使用手册。作者简介张志涌1944年出生于无锡;教授,获政府专项津贴,IEEE高级会员,中国电子学会高级会员,江苏省自动化学会理事、网络与系统专委会主委;1967年毕业于清华大学自动控制系,1982年初在上海交通大学获控制理论硕士学位,1989—90年在荷兰王国Eindhoven技术大学研修系统辨识、故障诊断;主持并完成国家自然科学基金、省部基金及科研项目近十项,发表论文50余篇,著作1本。现主要从事自动控制教学和计算机控制、计算机仿真、故障诊断等研究。1989年在荷兰用MATLAB3.0研究系统辩识和故障诊断;1992年对MATLAB3.0实现汉化并编写了相应讲义;在1994、95年借助于MATLAB3.5、4.0先后完成国家自然科学基金和国家教委留学生基金课题研究;1996年在省基金支持下从事MATLAB4.2c建立仿真实验室的研究,并于1997年编写出版《掌握和精通MATLAB》;1997年底获原邮电部预研经费资助开始了以MATLAB5.x为工具的智能技术研究。6.x版前言1.MATLAB的发展历程和影响MATLAB名字由MATrix和LABoratory两词的前三个字母组合而成。那是20世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的CleveMoler教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。经几年的校际流传,在Little的推动下,由Little、Moler、SteveBangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。MATLAB以商品形式出现后的短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包纷纷淘汰,而改在MATLAB平台上重建。在时间进入20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。到九十年代初期,在国际上30几个数学类科技应用软件中,MATLAB在数值计算方面独占鳌头,而Mathematica和Maple则分居符号计算软件的前两名。Mathcad因其提供计算、图形、文字处理的统一环境而深受中学生欢迎。MathWorks公司于1993年推出了基于Windows平台的MATLAB4.0。4.x版在继承和发展其原有的数值计算和图形可视能力的同时,出现了以下几个重要变化:(1)推出了SIMULINK,一个交互式操作的动态系统建模、仿真、分析集成环境。(2)推出了符号计算工具包。一个以Maple为“引擎”的SymbolicMathToolbox1.0。此举结束了国际上数值计算、符号计算孰优孰劣的长期争论,促成了两种计算的互补发展新时代。(3)构作了Notebook。MathWorks公司瞄准应用范围最广的Word,运用DDE和OLE,实现了MATLAB与Word的无缝连接,从而为专业科技工作者创造了融科学计算、图形可视、文字处理于一体的高水准环境。从1997年春的5.0版起,后历经5.1、5.2、5.3、6.0、6.1等多个版本的不断改进,MATLAB“面向对象”的特点愈加突出,数据类型愈加丰富,操作界面愈加友善。2002年初夏所推6.5版的最大特点是:该版本采用了JIT加速器,从而使MATLAB朝运算速度与C程序相比肩的方向前进了一大步。假如说,在上世纪九十年代,新、老一代教科书的区别性标志是“教材是否包含MATLAB内容”,那末进入二十一世纪后,MATLAB对教材的影响又以崭新的形式出现:新教材正在更彻底地摒弃那些手工计算、计算尺计算、手摇或电动计算机、电子模拟计算机时代建立的“老的但久被当作经典的”表述、分析和计算方法;而逐步地建立以现代计算工具(包括软硬件)为平台的新的表述、分析和计算方法,其中包括采用交互式图形用户界面去完成各种表述、分析和计算目的。2.本书沿革z1992年编写并印刷《科技编程语言KINDTOOL》讲义,约20万字。KINDTOOL由DOS环境下的MATLAB3.0经汉化而得。z1997年写成《掌握和精通MATLAB》,约51万字;该书全面介绍了Windows平台上的MATLAB4.2c。该书由北京航空航天大学出版社于1997年8月公开发行,前后印刷5次,共发行17000册。z2000年写成《精通MATLAB5.3》,约90万字。该书全面详尽、层次丰满;它阐述了MATLAB5.3版的几乎全部通用功能。该书附带光盘,大大扩展了该书的实用价值。该书由北京航空航天大学出版社于2000年8月公开发行,前后印刷3次,共发行9000册。z2001年4月,又以MATLAB6.0为基础,编写出版了《MATLAB教程》,约53万字;该书是为满足教材使用和简明自学需要而编写的。其特点是:全面完整而精练简明;系统流畅又配备自测习题;内容稳定又及时适应MATLAB最新版本。2002年2月再次印刷时,该书已在MATLAB6.1基础上加以修订。该书至今发行10000册。z2002年12月,以MATLAB6.5为基础出版本书。2.本书的编写宗旨z全面反映MATLAB最新版本的通用功能,淡化学科性强的专用功能;z着力描绘各指令间的协调配合,少费笔墨于指令用法的笼统解释;z寓教于例,由浅入深;既讲机理,又讲程式规则;z关于科学计算,着重强调理论概念、教材算法和实际计算三者间的关系,着重强调现代计算工具(软、硬件)对传统计算、设计方法的影响和冲击;z诚实面对读者,所有算例都经反复运作验证,而决非转抄潦草之作;z为方便读者学习、使用,随书光盘包含了全书的所有算例文件,可在MATLAB或Notebook环境中直接运行。以上编写宗旨是作者多年写作养成的传统和风格。作者因此得到广大读者的有力支持和赞誉。特别是随书光盘给读者带去的彩色和可靠易用的程序更受欢迎。3.全书结构、梗概及新增内容(1)全书的结构和功用全书由“前言”、“目录”、“正文”、“附录”、“参考文献”和“随书光盘”组成。z“目录”目录由四级标题构成。通过目录,读者可以清晰地看到正文内容的完整框架,方便地查到所需内容的位置。z“正文”全书共分十三章,包含算例390多个。章节内容是遵循“由浅入深”、“相对独立”和“算例引导”原则安排的。从全书看,概念相对简单的篇章安排在前;每章中,操作比较容易的节次安排在前。新版算例算例“深浅”层次远比前版丰富。每章的入门或前一、二节的简单算例,总可以让读者轻松地学会MATLAB的各种功能的初步使用,不管读者原先用过MATLAB与否。而配置在各章中的综合算例,将向读者展示MATLAB解决复杂问题的可能途径,引导读者向纵深发展。正文内容的安排既考虑了系统讲授的需要,又考虑了不同水平读者自学和查阅的需要。新、旧版的章节区别:(1)旧版第一章“概论”被整章删除,其内容被大幅删简后融在前言中。(2)本书第十二章“应用程序接口API”是根据MATLAB6.5新写的。(3)本书其余各章的名称与旧版相对应,但其内容都以6.5为基础进行了修改和增补。z附录A“索引”它汇集了本书涉及的所有MATLAB标点符号、函数指令、SIMULINK库模块、图形对象属性、以及用于API的各种指令。它们(除标点符号外)根据英文字母的次序罗列。每个英文指令(或符号、属性、模块)后,罗列着那指令以不同方式被介绍、使用的具体节次。这“索引”主要用做英文关键词查阅。z附录B“光盘使用说明”它详细介绍光盘文件的种类、工作环境和使用方法。z“参考文献”列出了本书成文的文献基础。读者如有疑惑或想寻根求源,这部分资料十分有用。z“随书光盘”盘上存放着约700多个文件。它们提供了印刷版对应算例运行的几乎所有文件。(2)正文概要z“第1章基础准备及入门”专门介绍最常用的交互界面:通用指令窗、历史指令窗、当前目录浏览器、工作空间浏览器、内存数组编辑器、交互界面分类目录窗、M文件编辑/调试器、及帮助导航/浏览器。本章内容与旧版完全不同。这是因为6.5版向用户提供前所未有的、成系列的交互式工作界面。了解、熟悉和掌握这些交互界面的基本功能和操作方法,将使新老用户能事半功倍地利用MATLAB去完成各种学习和研究。z“第2章数值数组及其运算”集中叙述一维、二维、任意高维双精度数值数组的生成和操作。这是MATLAB最常用最基本又最传统的数据类型,定义在此类“对象”上的“方法”就是最具魅力的数组运算。本章所涉内容和方法,不仅使用于数值数组,而且也将延伸使用于在其他数据结构中。MATLAB6.5运用新的逻辑数据类型,大大扩充了逻辑运算指令。z“第3章字符串、元胞和构架数组”系统阐明这些数据类型的基本性质、用法要旨。本书作者提醒读者不要小视这第3章。原因之一是“构成MATLAB指令的M文件”中就大量使用这些数据类型。只有理解这些数据类型才能真正灵活运用MATLAB指令,尤其是那些泛函指令、图形对象、图形用户界面的各种控件等。应该指出:MATLAB6.5的数据类型有较大变化。本书反映了这种变化。z“第4章数值计算”的篇幅在本书所有章节中最长,因为正是这顶级水准的数值计算使MATLAB立身于世界、称雄于天下。本章对数学问题的描述遵循“最低限度自封闭”原则,即以最简明的方式阐述理论数学、数值数学和MATLAB计算指令间的内在联系和差别。比如在讨论线性方程解时,本书总是先回顾性地列出若干常见的“教科书解法”,并指出这些理论算法在实际应用中的缺陷,然后在简述数值计算原理的基础上给出精良的MATLAB计算指令。对于第4章涉及较宽知识的地方,本书都配置了综合性算例。跟随着解题步骤,读者不难掌握MATLAB所提供的相关解题指令和工具。但本书作者在此提醒:本章部分内容的知识跨度可能较大,读者不必企求一口气读完或读懂本章的所有内容。随着MATLAB从5.3升级到6.5版,本章内容有三个重要变化:(A)由于MATLAB数值计算基础软件库变化,导致许多数值计算结果在前后版本不同;(B)泛函指令对函数的操作借