章内容已在 Compiler3.0基础上全部重写。 ●“第12章应用程序接口API”是为适应读者应用 MATLAB水平的提高而新增的一章 它包括:(A)如何把已有的优秀C程序改造成可在 MATLAB中方便调用的指令;(B) 如何借助MAT文件实现 MATLAB与外部应用程序的数据交换;(C)如何在各种其他 应用程序中利用 MATLAB引擎技术;(D)如何应用 ActiveX实现 MATLAB与外部应 用程序的通信;(E)如何借助DDE技术在 MATLAB与其他外部程序间进行通信 该章完全而且值得指出: MATLAB60,6.1版用于API的(MEX、MAT、及引擎) 库函数许多已经被废止。本章内容是根据 MATLAB65编写的 “第13章 Notebook”系统地叙述 Notebook的安装、启动、和使用;最后一节则专门 讲述,如何通过 MATLAB、 Notebook、 PowerPoint三者之间的协调链接来制作科技演 讲稿。该章内容对需要撰写科技论文、“电子版”科技著作、多媒体科技演讲稿的读者 十分有用。 本章新版内容与旧版大致相同,但有些变化:(A)关于 Notebook的安装是针对变 化了软件环境重写的。(B)新增一节,专门介绍具有现场计算能力的幻灯片的制作。 (3)本书新版与旧版的主要差别 ●本书全部算例的计算结果已在 MATLAB65上更新。这是因为矩阵和特征值计算指令不 再以 LINPACK和 EISPACK库为基础,而建筑在计算速度更快、运行更可靠的 LAPACK 和 ARPACK程序库的新基础上 基础软件库变化所产生的影响明显地表现在矩阵分解、特征向量、奇异向量等的计 算结果不同上,也影响到隐性使用 LAPACK和 ARPACK的那些指令(如矩阵对数指令 等)的计算结果。本书新版可保证读者在 MATLAB65环境下完全重现本书算例结果 新版紧随 MATLAB升级,(A)增加了一节“求解微分方程边值问题”的内容:(B)介 绍了新的积分指令quad和 triplequad;(C)增添了一节如何对图形进行透明度控制的 内容;(D)用一节篇幅全面阐述新数据类型“函数句柄”的创建和使用;(E)完全重 写了 MATLAB编译器那章的内容:(F)完全重写了程序性能剖析器,并展示了6.5版 的JT加速功能。 MATLAB升级使其所有交互界面都发生了较大变化,因此本书新版相应章节也作了如 下变动:(A)“第一章基础准备及入门”是完全新写的;(B)关于“图形窗编辑功能” 那节的内容是新写的;(C)关于“ SIMULINK模块库和模型窗界面”的内容是重写: (D)关于“GUI设计工作界面”的内容是完全新写的。 为适应读者对 MATLAB理解和应用水平的提高,新版有如下变化:(A)新添一节关于 “uint8,unit16数据类型在图像存储中应用”的内容;(B)新写一节关于“S函数在 SIMULINK中应用”的内容;(C)新增一章关于“应用程序接口API”的内容;(D 在 Notebook那章中新增一节,专门介绍在放映过程具有计算能力的幻灯片的制作。 附录进行了内容的增补和更新。 4.本书的读者对象和使用建议 MATLAB自身性质决定了本书的主要读者对象是:需要数学计算、数学函数或计算结 果可视的各类大学生、研究生、教师、研究人员和科技工作者。 本书内容的自封闭性、390多个算例和完善的检索系统和随书光盘,使本书既能用做教
章内容已在 Compiler3.0 基础上全部重写。 z “第 12 章应用程序接口 API”是为适应读者应用 MATLAB 水平的提高而新增的一章。 它包括:(A)如何把已有的优秀 C 程序改造成可在 MATLAB 中方便调用的指令;(B) 如何借助 MAT 文件实现 MATLAB 与外部应用程序的数据交换;(C)如何在各种其他 应用程序中利用 MATLAB 引擎技术;(D)如何应用 ActiveX 实现 MATLAB 与外部应 用程序的通信;(E)如何借助 DDE 技术在 MATLAB 与其他外部程序间进行通信。 该章完全而且值得指出:MATLAB6.0, 6.1 版用于 API 的(MEX、MAT、及引擎) 库函数许多已经被废止。本章内容是根据 MATLAB6.5 编写的。 z “第 13 章 Notebook”系统地叙述 Notebook 的安装、启动、和使用;最后一节则专门 讲述,如何通过 MATLAB、Notebook、PowerPoint 三者之间的协调链接来制作科技演 讲稿。该章内容对需要撰写科技论文、“电子版”科技著作、多媒体科技演讲稿的读者 十分有用。 本章新版内容与旧版大致相同,但有些变化:(A)关于 Notebook 的安装是针对变 化了软件环境重写的。(B)新增一节,专门介绍具有现场计算能力的幻灯片的制作。 (3)本书新版与旧版的主要差别 z 本书全部算例的计算结果已在 MATLAB6.5 上更新。这是因为矩阵和特征值计算指令不 再以 LINPACK 和 EISPACK 库为基础,而建筑在计算速度更快、运行更可靠的 LAPACK 和 ARPACK 程序库的新基础上。 基础软件库变化所产生的影响明显地表现在矩阵分解、特征向量、奇异向量等的计 算结果不同上,也影响到隐性使用 LAPACK 和 ARPACK 的那些指令(如矩阵对数指令 等)的计算结果。本书新版可保证读者在 MATLAB6.5 环境下完全重现本书算例结果。 z 新版紧随 MATLAB 升级,(A)增加了一节“求解微分方程边值问题”的内容;(B)介 绍了新的积分指令 quadl 和 triplequad ;(C)增添了一节如何对图形进行透明度控制的 内容;(D)用一节篇幅全面阐述新数据类型“函数句柄”的创建和使用;(E)完全重 写了 MATLAB 编译器那章的内容;(F)完全重写了程序性能剖析器,并展示了 6.5 版 的 JIT 加速功能。 z MATLAB 升级使其所有交互界面都发生了较大变化,因此本书新版相应章节也作了如 下变动:(A)“第一章基础准备及入门”是完全新写的;(B)关于“图形窗编辑功能” 那节的内容是新写的;(C)关于“SIMULINK 模块库和模型窗界面”的内容是重写; (D)关于“GUI 设计工作界面”的内容是完全新写的。 z 为适应读者对 MATLAB 理解和应用水平的提高,新版有如下变化:(A)新添一节关于 “uint8, unit16 数据类型在图像存储中应用”的内容;(B)新写一节关于“S 函数在 SIMULINK 中应用”的内容;(C)新增一章关于“应用程序接口 API”的内容;(D) 在 Notebook 那章中新增一节,专门介绍在放映过程具有计算能力的幻灯片的制作。 z 附录进行了内容的增补和更新。 4.本书的读者对象和使用建议 MATLAB 自身性质决定了本书的主要读者对象是:需要数学计算、数学函数或计算结 果可视的各类大学生、研究生、教师、研究人员和科技工作者。 本书内容的自封闭性、390 多个算例和完善的检索系统和随书光盘,使本书既能用做教
材或自学用书,又能当作实践 MATLAB的软件环境。本书内容不仅可作为 MATLAB使用 方法的参考手册,而且也可当作科学计算方法的选用参考 MATLAE自身的很强综合性决定了本书有较大的知识跨度。书中有的章节涉及较深的 数学,有的则涉及较多C或其他软件的知识:有的章节要求对微分方程有较好的理解,有 的则需要对计算机色彩系统有较好的认识。作者在编写本书时,充分考虑了 MATLAB的这 种特点,也考虑了多方面读者的不同层次需要,在书中所有需要高层次知识的地方配置了相 对简单的引导性算例。这样处理后,不管读者原来的知识背景如何,他们只要循着算例所给 指令进行操作,就至少能直观地感受到那些指令的运作结果。假如再认真地阅读指令后的注 解说明,他们就能举一反三,更好地掌握利用 MATLAB解决那类问题的技法 当本书用做自学材料时,建议读者先从比较简单的内容开始。这部分内容一般被安排在 每章的前一、二节。本书作者还建议自学者特别注意对书中所给算例的实践,注意通过算例 去感悟一般规则。 当本书用做本科生教材时,应注意避开那些涉及较深数学的节次,如第5章中的奇异值 分解、多项式拟合和非线性最小二乘、插值等内容。此外,由于第8、9、10、11、12章的 应用场合比较专业,所以一般也不必列为本科教学内容。 当本书被用做研究生教学参考书时,应根据不同学科研究生的知识背景对本书内容作 定的取舍 当本书被当作参考手册使用时,分类检索可从书前“目录”进行,而指令、模块、属性 等关键词检索则应从书后“索引”着手。书中的大量应用实例与 MATLAB自身帮助文件有 很强的互补性 5.随书的光盘文件 引入光盘的指导思想是:营造一个与印刷版对应的软件环境,使读者能从“可直接运作 的”不同形式的光盘文件中,更快更好地掌握和理解 MATLAB。 光盘装载着容量约70M,各类文件约700多个。这些文件可引出 Notebook环境;可引 出交互界面:可引出 SIMULINK模型、运行界面;可引出编译环境、产生独立应用程序; 可引出把幻灯放映、Wod文字处理、 MATLAB计算结合在一起的综合环境。 引入光盘解决了印刷版的如下几个问题:(1)印刷版很难(甚至无法)表述 MATLAB 不断升级后的“交互”能力。(2)印刷版很难以低价格表现文件或计算结果中的“色彩”信 息。(3)印刷版很难提供完整的 SIMULINK模型文件。(4)印刷版无法提供由编译而得的 MEX文件和能独立运行的EXE文件。(5)印刷版很难提供AP中的很多其他应用程序的文 此外,光盘提供的文件可作为读者练习时的参照物,便于读者找出自己编写指令或文件 运行失败的原因。 本随书光盘内容曾被个别书籍大量复制剽窃。这类事情的发生给作者带来很大伤害。但 作者在权衡光盘的利弊后,坚持原宗旨不变:为方便读者,继续携带随书光盘。望得到广大 读者的支持和配合。 6.本书作者的期望 MATLAB本身是一个藏量极为丰富的资源库。因此,对大多数用户个体来说,一定有 部分 MATLAB内容看起来是“透明”的,即用户能明白其全部细节:另有些内容表现为“灰
材或自学用书,又能当作实践 MATLAB 的软件环境。本书内容不仅可作为 MATLAB 使用 方法的参考手册,而且也可当作科学计算方法的选用参考。 MATLAB 自身的很强综合性决定了本书有较大的知识跨度。书中有的章节涉及较深的 数学,有的则涉及较多 C 或其他软件的知识;有的章节要求对微分方程有较好的理解,有 的则需要对计算机色彩系统有较好的认识。作者在编写本书时,充分考虑了 MATLAB 的这 种特点,也考虑了多方面读者的不同层次需要,在书中所有需要高层次知识的地方配置了相 对简单的引导性算例。这样处理后,不管读者原来的知识背景如何,他们只要循着算例所给 指令进行操作,就至少能直观地感受到那些指令的运作结果。假如再认真地阅读指令后的注 解说明,他们就能举一反三,更好地掌握利用 MATLAB 解决那类问题的技法。 当本书用做自学材料时,建议读者先从比较简单的内容开始。这部分内容一般被安排在 每章的前一、二节。本书作者还建议自学者特别注意对书中所给算例的实践,注意通过算例 去感悟一般规则。 当本书用做本科生教材时,应注意避开那些涉及较深数学的节次,如第 5 章中的奇异值 分解、多项式拟合和非线性最小二乘、插值等内容。此外,由于第 8、9、10、11、12 章的 应用场合比较专业,所以一般也不必列为本科教学内容。 当本书被用做研究生教学参考书时,应根据不同学科研究生的知识背景对本书内容作一 定的取舍。 当本书被当作参考手册使用时,分类检索可从书前“目录”进行,而指令、模块、属性 等关键词检索则应从书后“索引”着手。书中的大量应用实例与 MATLAB 自身帮助文件有 很强的互补性。 5.随书的光盘文件 引入光盘的指导思想是:营造一个与印刷版对应的软件环境,使读者能从“可直接运作 的”不同形式的光盘文件中,更快更好地掌握和理解 MATLAB。 光盘装载着容量约 70M,各类文件约 700 多个。这些文件可引出 Notebook 环境;可引 出交互界面;可引出 SIMULINK 模型、运行界面;可引出编译环境、产生独立应用程序; 可引出把幻灯放映、Word 文字处理、MATLAB 计算结合在一起的综合环境。 引入光盘解决了印刷版的如下几个问题:(1)印刷版很难(甚至无法)表述 MATLAB 不断升级后的“交互”能力。(2)印刷版很难以低价格表现文件或计算结果中的“色彩”信 息。(3)印刷版很难提供完整的 SIMULINK 模型文件。(4)印刷版无法提供由编译而得的 MEX 文件和能独立运行的 EXE 文件。(5)印刷版很难提供 API 中的很多其他应用程序的文 件。 此外,光盘提供的文件可作为读者练习时的参照物,便于读者找出自己编写指令或文件 运行失败的原因。 本随书光盘内容曾被个别书籍大量复制剽窃。这类事情的发生给作者带来很大伤害。但 作者在权衡光盘的利弊后,坚持原宗旨不变:为方便读者,继续携带随书光盘。望得到广大 读者的支持和配合。 6.本书作者的期望 MATLAB 本身是一个藏量极为丰富的资源库。因此,对大多数用户个体来说,一定有 部分 MATLAB 内容看起来是“透明”的,即用户能明白其全部细节;另有些内容表现为“灰
色”,即用户虽明白其机理但不懂具体的执行细节:还有些内容则“全黑”,即用户对它们完 全无知。本书虽仅涉及 MATLAB整体的很小一角,但就是这部分内容就已经构成了对本书 作者的严重挑战。 本书新版初稿于2001年夏,后几易书搞。作者在写稿过程中遇到过不少困惑,通过再 学习和向专家请教虽克服了它们的障碍,但仍难免错误和偏见。本书所有算例虽经多人在不 同PC机上独立运作验证,但仍不敢说百分之百的正确。在此,本书作者肯切期望得到各方 面专家和广大读者的指教。作者的电子信箱地址是:zyZh@niupt.edu.cn 7.致谢 本书结稿的此时此刻,我首先要感谢的是杨祖樱教授,她以妻子和前版作者的双重身份 给予我永恒的支持,是她随时向我提供不同的认知和意见,分担写作中的甘苦。 在本书写作中,我前后几届研究生徐彦琴、曹嵩、汪方盛、凌云、李昌、王俊等都做出 很大的贡献。其中徐彦琴、汪方盛的作用尤为突出。他们为本书设计了许多独具匠心的例题 不嫌其烦对全书算例进行运算验证,逐字逐句地对全书内容进行校对。我深深感谢他们为本 书所做的一切。 最后要感谢北京航空航天出版社。感谢该社为本书前版所做的一切,感谢该社对作者重 写新版所给予的鼓励,感谢该社对作者的理解和支持 作者 2002年12月于南京
色”,即用户虽明白其机理但不懂具体的执行细节;还有些内容则“全黑”,即用户对它们完 全无知。本书虽仅涉及 MATLAB 整体的很小一角,但就是这部分内容就已经构成了对本书 作者的严重挑战。 本书新版初稿于 2001 年夏,后几易书搞。作者在写稿过程中遇到过不少困惑,通过再 学习和向专家请教虽克服了它们的障碍,但仍难免错误和偏见。本书所有算例虽经多人在不 同 PC 机上独立运作验证,但仍不敢说百分之百的正确。在此,本书作者肯切期望得到各方 面专家和广大读者的指教。作者的电子信箱地址是:zyzh@njupt.edu.cn 。 7.致谢 本书结稿的此时此刻,我首先要感谢的是杨祖樱教授,她以妻子和前版作者的双重身份 给予我永恒的支持,是她随时向我提供不同的认知和意见,分担写作中的甘苦。 在本书写作中,我前后几届研究生徐彦琴、曹嵩、汪方盛、凌云、李昌、王俊等都做出 很大的贡献。其中徐彦琴、汪方盛的作用尤为突出。他们为本书设计了许多独具匠心的例题, 不嫌其烦对全书算例进行运算验证,逐字逐句地对全书内容进行校对。我深深感谢他们为本 书所做的一切。 最后要感谢北京航空航天出版社。感谢该社为本书前版所做的一切,感谢该社对作者重 写新版所给予的鼓励,感谢该社对作者的理解和支持。 作 者 2002 年 12 月于南京
第一章基础准备及入门 本章有两个目的:一是讲述 MATLAB正常运行所必须具备的基础条件;二是简明系统 地介绍高度集成的 Desktop操作桌面的功能和使用方法 本章的前两节分别讲述: MATLAB的正确安装方法和 MATLAB环境的启动。因为指 令窗是 MATLAB最重要的操作界面,所以本章用第1.3、14两节以最简单通俗的叙述、算 例讲述指令窗的基本操作方法和规则。这部分内容几乎对 MATLAB各种版本都适用 MATLAB6x不同于其前版本的最突出之处是:向用户提供前所未有的、成系列的交互 式工作界面。了解、熟悉和掌握这些交互界面的基本功能和操作方法,将使新老用户能事半 功倍地利用 MATLAB去完成各种学习和研究。为此,本章特设几节用于专门介绍最常用的 交互界面:历史指令窗、当前目录浏览器、工作空间浏览器、内存数组编辑器、交互界面分 类目录窗、M文件编辑/调试器、及帮助导航/览器。 本章是根据 MATLAB6.5版编写的,但大部分内容也适用于其他6x版。 11 MATLAB的安装和内容选择 Select directory share products will be installed. Space available 7523曹 22 Select installation opti . Install poets ad docuantatiee Mora Options INstall docwentatian only 115 3. Select language ef documentatie. English only C English and Japanese, if writable 4. Select products ad/or documentation. Block aunicat ions Tool box 图1.1-1 12 Desktop操作桌面的启动 12.1 MATLAB的启动 1.2.2 Desktop操作桌面简介
第一章 基础准备及入门 本章有两个目的:一是讲述 MATLAB 正常运行所必须具备的基础条件;二是简明系统 地介绍高度集成的 Desktop 操作桌面的功能和使用方法。 本章的前两节分别讲述:MATLAB 的正确安装方法和 MATLAB 环境的启动。因为指 令窗是 MATLAB 最重要的操作界面,所以本章用第 1.3、1.4 两节以最简单通俗的叙述、算 例讲述指令窗的基本操作方法和规则。这部分内容几乎对 MATLAB 各种版本都适用。 MATLAB6.x 不同于其前版本的最突出之处是:向用户提供前所未有的、成系列的交互 式工作界面。了解、熟悉和掌握这些交互界面的基本功能和操作方法,将使新老用户能事半 功倍地利用 MATLAB 去完成各种学习和研究。为此,本章特设几节用于专门介绍最常用的 交互界面:历史指令窗、当前目录浏览器、工作空间浏览器、内存数组编辑器、交互界面分 类目录窗、M 文件编辑/调试器、及帮助导航/浏览器。 本章是根据 MATLAB6.5 版编写的,但大部分内容也适用于其他 6.x 版。 1.1MATLAB 的安装和内容选择 图 1.1-1 1.2Desktop 操作桌面的启动 1.2.1 MATLAB 的启动 1.2.2 Desktop 操作桌面简介
操作桌面的缺省外貌 MATLAB Ei1 e Edit viev Ve置 indo且e1p Using Toolbox Path Cache. Type help toolbox path esche for Bytes Cl SIMulink 海0中,用“全元”法向城值 G Desktop Tools 多He 图1.2-1 二通用操作界面 13 Command window运行入门 1.3.1 Command window指令窗简介 v Command window 例1,3.2- >>(12+2*07-4))/3°2 2 图13-1 1.3.2 最简单的计算器使用法 【例1.32-1】求[2+2×(7-4)]÷3的算术运算结果。 (1)用键盘在 MATLAB指令窗中输入以下内容 >>(12+2*(7-4))/3^2 (2)在上述表达式输入完成后,按【 Enter】键,该就指令被执行。 (3)在指令执行后, MATLAB指令窗中将显示以下结果 ans
一 操作桌面的缺省外貌 图 1.2-1 二 通用操作界面 1.3Command Window 运行入门 1.3.1 Command Window 指令窗简介 图 1.3-1 1.3.2 最简单的计算器使用法 【例 1.3.2-1】求 2 [12 + 2× (7 − 4)] ÷ 3 的算术运算结果。 (1)用键盘在 MATLAB 指令窗中输入以下内容 >> (12+2*(7-4))/3^2 (2)在上述表达式输入完成后,按【Enter】键,该就指令被执行。 (3)在指令执行后,MATLAB 指令窗中将显示以下结果。 ans = 2