logo资料库

MATLAB初学者教程+MATLAB编程-菜鸟入门(清晰版).pdf

第1页 / 共340页
第2页 / 共340页
第3页 / 共340页
第4页 / 共340页
第5页 / 共340页
第6页 / 共340页
第7页 / 共340页
第8页 / 共340页
资料共340页,剩余部分请下载后查看
1.pdf
MATLAB编程-菜鸟入门(清晰版).pdf
封面
前言
序言
目录
第一章 matlab介绍
1.1matlab的优点
1.2matlab的缺点
1.3matlab的开发环境
1.4matlab当做便笺簿
1.5总结
1.6练习
第二章matlab的基础
变量和数组
2.1变量的初始化
2.3多维数组
2.4子数组
2.5特殊变量
2.6输出数据
2.7数据文件
2.8标量运算和数组运算
2.9运算的优先级别
2.10matlab的内建函数
2.11简单的xy作图
2.12例子
2.13调试matlab程序
2.14总结
2.15练习
第三章分支语句和编程语言
3.1自上而下的编程方法
3.2伪代码的应用
3.3关系算符和逻辑算符
3.4选择结构
3.5附加的画图特性
3.6程序调试的进一步说明
3.7总结
3.8练习
第四章循环结构
4.1while循环
4.2for循环
4.3逻辑数组与向量化
4.4附加例子
4.5总结
4.5练习
第五章自定义函数
5.1matlab函数简介
5.2在matlab中的变量传递
5.3选择参数
5.4用全局内存分享数据
5.5在函数调用两次之间本底数据的存储
5.6函数的函数
5.7子函数和私有函数
5.8总结
5.9练习
第六章复数数据和画图类型
6.1复数数据
6.2字符串函数
6.3多维数组
6.4二维作图的补充说明
6.5三维作图
6.6总结
6.7练习
第七章稀疏矩阵,单元阵列,结构
7.1稀疏矩阵
7.2单元阵列
7.3数组结构
7.4总结
第八章输入和输出函数
8.1函数textread
8.2load和save
8.3matlab文件过程简介
8.4文件的打开与关闭
8.5二进制I/O函数
8.6格式化I/O函数
8.7格式化和二进制i/o函数的比较
8.8文件位置和状态函数
8.9函数uiimport
8.10总结
第九章句柄图形
9.1matlab图形系统
9.2句柄对象
9.3对象属性的检测和变更
9.4用set函数列出可能属性值
9.5自定义数据
9.6对象查找
9.7用鼠标选择对象
9.8位置和单位
9.9打印位置
9.10默认和factory属性
9.11图形对象属性
第十章用户图形界面
10.1用户界面是如何工作的
10.2创建并显示图形界面
10.3对象属性
10.4图形用户界面组建
10.5对话框
10.6菜单
10.7创建高效TUIs的技巧
10.8总结
附录A ASCII字符几
附录B 测试答案
有 MATLAB 编程问题的朋友,可以联系我! 联系方式: QQ:993878382 Email:matlabman@qq.com 个人博客:http://top99.blog.hexun.com/46036333_d.html 如果我 QQ 不在线,你可将问题发到我的邮箱,或者在我的博客留 言,可以为你提供解决问题的思路,同探讨,共进步!
MATLAB 编程 (第二版) Stephen J. Chapman 著 邢树军 郑碧波译
国外高校电子信息类优秀教材(英语影印版) MATLAB 编程 (第二版) MATLAB Programming for Engineers (Second Edition) Stephen J. Chapman 著 邢树军 郑碧波 译
前言 郑碧波 本文为 Stephen J.Chapman《MATLAB 编程(第二版)》英文影印版的中文译本,这本 书对初学者很好的入门教材。之前从网上下载到邢树军兄弟译的 pdf 版本,邢的这个版本用 起来有以下几方面不便: 1.文件较大。 2.打开之后总是提示播放某首歌,很烦。 3.源代码和图形采用了大量的图片,不方便学习者直接复制到 MATLAB 中进行调试学 习。即使是文本的源代码,也经常出错,主要是每一行语句末尾的“;”为中文编码的分号。 4.个别字翻译错误(sorry,我的这个版本也没有完全消除),但我有发现的已经更正。 5.第十章翻译不完全。本来全书只有十章,在第十章还没有翻译结束时插进了第十一章。 6.附录 A 和 B 没有(翻译)提供。其中附录 B 为练习答案,其实这对初学者来说,是 极其重要的。 于是就想着改进该版本的。本版本在邢译本的基础上做如下修改: 1.转换成 doc 格式,重新排版(其实也没怎么排版)。 2.更换封面,去掉歌曲。 3.所有源代码测试正确。 4.用了较多新的彩色截图代替原来的。 5.提供了附录 A 和附录 B。 6.删除了原来 pdf 版本的第 11 章(原著没有)。 本版本有如下缺点 1.由于本人截图用 MATLAB 是 7.0 和 6.5 版本,在 winxp 中运行。一些截图与原英文版 本不一样,原因一是与原英文版本 MATLAB 6.0 不同,原因二是因于产生图形的数据无法 找到相同的,好在基础知识方面的学习差别不大。 2.第十章前几节仍为树军兄弟翻译,后面部分由我翻译,但由于下载不到 6.0 版本,只 好用 6.5 版本,但使用 6.5 版本会出现 GUI 编程代码不一样的情况,从忠于原著角度考虑感 觉不爽,后来想想,既然网上都找不到 6.0 版本,那么使用 6.5 版本岂不更方便读者?! 3.附录 B 与前面的专有名词翻译可能会不一致。例如 cell array 一词,邢把它译为“单 元阵列”,而我把它称为“胞数组”。我是一个初学者,不知权威的书是如何翻译的。不管如 何,我已经做了相应说明,希望不会引起读者太大的不便。 本人英语也忘记得七七八八了。在翻译过程中肯定有不少不恰当的地方,如果你发现, 请通知我,谢谢! 本书的绝大部分....是邢树军翻译的,感谢邢树军兄弟的无私奉献,我仅仅是做些小小修补。 其实翻译之后才发现,翻译过程是一项很繁琐很枯燥的事情! 郑碧波 (邮箱 bibofun@163.com) 2008-1-31
译序 邢树军 有这么一个故事: 在非洲草原上,有一种不起眼的动物叫吸血蝙蝠。它身体极小,却是野马的天敌。这种 蝙蝠靠吸动物的血生存,它在攻击野马时,常附在马腿上,用锋利的牙齿极敏捷地刺破野马 的腿,然后用尖尖的嘴吸血。无论野马怎样蹦跳、狂奔,都无法驱逐这种蝙蝠。蝙蝠却可以 从容地吸附在野马身上,落在野马头上,直到吸饱吸足,才满意地飞去。而野马常常在暴怒、 狂奔、流血中无可奈何地死去。 动物学家在分析这一问题时,一致认为吸血蝙蝠所吸的血量是微不足道的,远不会让野 马死去,野马的死亡是它暴怒的习性和狂奔所致。 这个故事与 MATLAB 似乎没有任何的联系。编程初学者习惯于接到问题,就想在计算 机编出好的程序来,而且要求没有错误。这是不可能的,时间一长就会像这只马一样变得暴 怒,从而失去对编程的兴趣。所以,我翻译的这本书要求我们养成良好的编程习惯,强调自 上而下的编程方法。希望读者能够理解这个方法。 自上而下的编程方法,不仅适用于编程,而且适用于我们做事。具体步骤为 (1)首先对你所面临的问题进行精确描述,即你遇到的到底是什么问题 (2)定义输入输出量,即我们的目的和现有的条件 (3)设计算法,逐层分解,逐步求精,这是做事谋的一个过程,大部分人做事出错就 出在这个地方,懒得到逐层分解,逐步求精,总是妄想一步登天。 (4)把算法转化为 MATLAB 语言,这一步是踏踏实实做的过程,没有这一步你什么 也做不成。 (5)检测程序,我们做的东西是否正确,不正确检测错误。这一步是需要耐心的,不 要怕错误,每一次检测都会让你提高。做事时,不要因一些错误而畏缩不前。 在翻译的过程中,有很多的时侯都想放弃。有时也想不干了,但是每当这时,我就会找 个人聊天,然后去思考,我遇到的问题是什么?是没有方法,还有心浮气躁。而多半的原因 是因为后者,就像那匹马一样,因小事而丢了“性命”。于是,我翻译这本书,最大的收获 是自上而下的编程方法。
序言 MATLAB(矩阵实验室的简称)是一种专业的计算机程序,用于工程科学的矩阵数学运 算。但在以后的几年内,它逐渐发展为一种极其灵活的计算体系,用于解决各种重要的技术 问题。MATLAB 程序执行 MATLAB 语言,并提供了一个极其广泛的预定义函数库,这样 就使得技术工作变得简单高效。在解决工程技术问题方面,MATLAB 比其它任何计算机语 言(包括 FORTAN 和 C)都简单高效。本书将介绍 MATLAB 语言,并向大家展示如何运 用它去解决经典的技术问题。 本书把 MATLAB 当作一种技术编程语言来教,向学生展示如何编写简洁高效,有充分 根据的程序。本书不主张把 MATLAB 数以百计的函数全部介绍给大家,而是教给学生怎样 使用 MATLAB 语言,以及如何使用网上在线工具去加载你所需要的函数。本书的前六章是 “编程设计介绍”的课程,专门为大一的工科学生而设计编写的。这部分内容以 9 周,每周 3 个小时教学为宜。其余的章节涵盖了一些高级的主题,例如输入输出接口(input/output interfaces)和图形用户界面(GUI)。这些章节可能需要更长时间的学习,也可以作为使用 MATLAB 的工科学生和有经验的工程师的参考。 第二版的变化 本书与 MATLAB6.0 和 6.1 相匹配,但基本的 MATLAB 语言与 MATLAB 5.0 大体相一 致,而集成工具,窗口和帮助子系统都发生了巨大的变化.还有 MATLAB 6.0 许多新的完整 的 MATLAB 图形用户界面.于是还在使用 6.0 以前版本的用户应注意到:在第十章的对于图 形用户界面(GUI)的发展并不适用于他们.用 MATLAB 进行科技编程的优点 MATLAB 语言 相对于传统的科技编程语言有诸多的优点。主要包括: 1.易用性 MATLAB 是种解释型语言,就像各种版本的 BASIC。和 BASIC 一样,它简单易用程 序可用作便笺簿求打在命令行处表达式的值,也可执行预先写好的大型程序。在 MATLAB 集成开发环境下,程序可以方便的编写,修改和调试。这是因为这种语言极易使用,对于教 育应用和快速建立新程序的原型,它是一个理想的工具。 许多的编程工具使得 MATLAB 十分简单易用。这些工具包括:一个集成的编译/调试 器,在线文件手册,工作台和扩展范例。 2.平台独立性 MATLAB 支持许多的操作系统,提供了大量的平台独立的措施。在本书编写的时侯, windows 98/2000/NT 和许多版本的 UNIX 系统都支持它。在一个平台上编写的程序,在其它 平台上一样可以正常运行,在一个平台上编写的数据文件在其它平台上一样可以编译。因此 用户可以根据需要把 MATLAB 编写的程序移植到新平台。 3.预定义函数 MATLAB 带有一个极大的预定义函数库,它提供了许多已测试和打包过的基本工程问 题的函数。例如,假设你正在编写一个程序,这个程序要求你必须计算与输入有关的统计量。 在许多的语言中,你需要写出你所编数组的下标和执行计算所需要的函数,这些函数包括其
II | 序言 数学意义,中值,标准误差等。像这样成百上千的函数已经在 MATLAB 中编写好,所以让 编程变得更加简单。 除了植入 MATLAB 基本语言中的大量函数,还有许多专用工具箱,以帮助用户解决在 具体领域的复杂问题。例如,用户可以购买标准的工具箱以解决在信号处理,控制系统,通 信,图象处理,神经网络和其他许多领域的问题。 4.机制独立的画图 与其他语言不同,MATLAB 有许多的画图和图象处理命令。当 MATLAB 运行时,这 些标绘图和图片将会出现在这台电脑的图象输出设备中。此功能使得 MATLAB 成为一个形 象化技术数据的卓越工具。 5.用户图形界面 MATLAB 允许程序员为他们的程序建立一个交互式的用户图形界面。利用 MATLAB 的这种功能,程序员可以设计出相对于无经验的用户可以操作的复杂的数据分析程序。 6.MATLAB 编译器 MATLAB 的灵活性和平台独立性是通过将 MATLAB 代码编译成设备独立的 P 代码, 然后在运行时解释 P 代码来实现的。这种方法与微软的 VB 相类似。不幸的是,由于 MATLAB 是解释性语言,而不是编译型语言,产生的程序执行速度慢。当我们遇到执行速度慢的程序 时,我们将会指出其这一特性。 本书的特点 本书诸多特点主要是向大家强调如何编写可靠的程序。这些特性不仅为初学 MATLAB 的学生服务,而且也为在工作岗位上的熟练者服务。 1.强调自上而下的编程方法 本书在第三章引入自上而下的编程方法,然后在以后的课程中坚持使用这种方法去解决 问题。这种方法要求学生在开始编写代码前先做大体的设计。在其他工作开始之前,应强调 问题解决方案的确定和输入输出量的定义。一旦一个问题被适当地确定了,我们会教给学生 怎样逐步分解为一连串小的问题,然后执行这些小的问题就像执行独立的子程序或函数一 样。最后我们将运用这种方法向大家介绍检测编程全过程的重要性,包括整个程序的单元检 测和最终产品的彻底检测。 本书教授的编程流程归纳如下: 清晰地描述出你所要解决的问题。 定义出程序所要求的输入量和程序所应的输出量。 描述出你所要编写程序的算法,这一步将运用到自上而下和逐步分解的设计方法, 用伪代码和流程图来描述。 把算法转化为 MATLAB 语句。 检测 MATLAB 程序。这一步包括单个函数的单元检测,也包括最终程序的详尽检 测。
2.强调使用函数 序言 | III 本书强调使用函数在逻辑上把大问题分解成小的子问题。它也强调在组合成最终的程序 之前,先检测单元函数的重要性。本书也会介绍一些编程隐患和如何避免的方法。 3.强调 MATLAB 工具的应用 本书将教会你适当使用 MATLAB 提供的工具,使编程和调试变得简单。这些工具包括: launch pad,编译调试器,工作台,帮助台和 GUI 设计工具。 4.好的编程练习提示框 为了方便提示学生起见好的编程习惯被突出显示出来。每章的编程练习将会在章末做总 , 结。示例如下: 好的编程习惯 为了增强程序的可读性,在 if 结构体开头缩进两格或更多的空间。 5.编程隐患提示框 这些常见错误提示框突出显示一些常见的编程错误,故初学者能够参考,以致不出类似 的错误。示例如下: 同。 编程隐患 确保变量名的前三十一个字符是独一无二的,否则,MATLAB 将辨认不出两变量的不 6.强调数据结构 第七章向大家详细地介绍 MATLAB 数据结构,数据结构包括稀疏阵列,单元阵列和结 构阵列.这一章通过用户掌握图解和用户图形接口来向大家介绍如何适当使用这些数据结构. 授课特点 本课程的前六个章节是作为工程学一年级学生的《编程及问题解决入门》课程的教材而 书写的.它将耗费九周的时间,每周三个小时.如果时间不充足的话,第六章可以删除不讲. 前五章仍是编程基础和应用 MATLAB 解决问题,这就要求我们工程学教学工作者.其余的章 节涵盖了 MATLAB 的高级内容,这些内容将在学生以后工作中将会非常的有用。它包括高 级输入输出和用户图形界面的设计。 本书许多的特性可帮助学生理解。总共有 15 个小测试零散的分布在全书中,其答案存 在于附录 B 中。这些小测试将有助于自我理解。此外,大约还有 140 道章末课后题。一部 分精选的课后题的答案可在本书的网站上找到,当然全部的答案可在教师的指导书中找到好 的编程习惯在所有的章节中被突出显示出来,常见错误提示框突出显示一些常见的编程错
分享到:
收藏