这本书是<<matlab programming for engineers>> stephen j.chapman
翻译的内容会在以后的几个月发上来
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 带有一个极大的预定义函数库,它提供了许多已测试和打包过的基本工程问题的函数。例如,假设你正在编写一个程序,这个程序要求你必须计算与输入有关的统计量。在许多的语言中,你需要写出你所编数组的下标和执行计算所需要的函数,这些函数包括其数学意义,中值,标准误差等。像这样成百上千的函数已经在MATLAB中编写好,所以让编程变得更加简单。
除了植入MATLAB基本语言中的大量函数,还有许多专用工具箱,以帮助用户解决在具体领域的复杂问题。例如,用户可以购买标准的工具箱以解决在信号处理,控制系统,通信,图象处理,神经网络和其他许多领域的问题。
4. 机制独立的画图
与其他语言不同,MATLAB 有许多的画图和图象处理命令。当MATLAB运行时,这些标绘图和图片将会出现在这台电脑的图象输出设备中。此功能使得MATLAB成为一个形象化技术数据的卓越工具。
5. 用户图形界面
MATLAB允许程序员为他们的程序建立一个交互式的用户图形界面。利用MATLAB 的这种功能,程序员可以设计出相对于无经验的用户可以操作的复杂的数据分析程序。
6. MATLAB编译器
MATLAB 的灵活性和平台独立性是通过将MATLAB代码编译成设备独立的P代码,然后在运行时解释P代码来实现的。 这种方法与微软件的VB相类似。不幸的是,由于MATLAB是解释性语言,而不是编译型语言,产生的程序执行速度慢。当我们遇到执行速度慢的程序时,我们将会指出其这一特性。
本书的特点
本书诸多特点主要是向大家强调如何编写可靠的程序。这些特性不仅为初学MATLAB的学生服务,而且也为在工作岗位上的熟练者服务。
1. 强调自上而下的编程方法
本书在第三章引入自上而下的编程方法,然后在以后的课程中坚持使用这种方法去解决问题。这种方法要求学生在开始编写代码前先做大体的设计。在其他工作开始之前,应强调问题解决方案的确定和输入输出量的定义。一旦一个问题被适当地确定了,我们会教给学生怎样逐步分解为一连串小的问题,然后执行这些小的问题就像执行独立的子程序或函数一样。最后我们将运用这种方法向大家介绍检测编程全过程的重要性,包括整个程序的单元检测和最终产品的彻底检测。
本书教授的编程流程归纳如下:
l 清晰地描述出你所要解决的问题。
l 定义出程序所要求的输入量和程序所应的输出量。
l 描述出你所要编写程序的算法,这一步将运用到自上而下和逐步分解的设计方法,用伪代码和流程图来描述。
l 把算法转化为MATLAB语句。
l 检测MATLAB程序。这一步包括单个函数的单元检测,也包括最终程序的详尽检测。
2. 强调使用函数
本书强调使用函数在逻辑上把大问题分解成小的子问题。它也强调在组合成最终的程序之前,先检测单元函数的重要性。本书也会介绍一些常见编程错误和如何避免的方法。
3. 强调MATLAB工具的应用
本书将教会你适当使用MATLAB提供的工具,使编程和调试变得简单。这些工具包括:launch pad,编译调试器,工作台,帮助台和GUI设计工具。
4. 好的编程练习提示框
为了方便提示学生起见,好的编程习惯被突出显示出来。每章的编程练习将会在章末做总结。示例如下:
好的编程习惯
为了增强程序的可读性,在if 结构体开头缩进两格或更多的空间。
5. 常见编程错误提示框
这些常见错误提示框突出显示一些常见的编程错误,故初学者能够参考,以致不出类似的错误。示例如下:
常见编程错误
确保变量名的前三十一个字符是独一无二的,否则,MATLAB 将辨认不出两变量的不同。
6. 强调数据结构
第七章向大家详细地介绍MATLAB数据结构,数据结构包括稀疏阵列,单元阵列和结构阵列.这一章通过用户掌握图解和用户图形接口来向大家介绍如何适当使用这些数据结构.
授课特点
本课程的前六个章节是作为工程学一年级学生的《编程及问题解决入门》课程的教材而书写的.它将耗费九周的时间,每周三个小时.如果时间不充足的话,第六章可以删除不讲.前五章仍是编程基础和应用MATLAB解决问题,这就要求我们工程学教学工作者.
其余的章节涵盖了matlab的高级内容,这些内容将在学生以后工作中将会非常的有用。它包括高级输入输出和用户图形界面的设计。
本书许多的特性可帮助学生理解。总共有15个小测试零散的分布在全书中,其答案存在于附录B中。这些小测试将有助于自我理解。此外,大约还有140道章末课后题。一部分精选的课后题的答案可在本书的网站上找到,当然全部联系的答案可在教师的指导书中找到。好的编程习惯在所有的章节中被突出显示出来,常见错误提示框突出显示一些常见的编程错误。章末的材料包括好的编程习惯的总结和matlab命令和函数的总结。
与本书相配套的教师参考手册包含所有章末练习的答案。本书所有例子的代码都可在本书的网站上得到,而章末练习的答案的代码只能在手册中得到。
对使用者最后的提示
不论我多么努力的校对本书的文本,印刷错误总是难免的。如果你发现了一些错误,你可以通过出版商通知我,我将在再版的时候做到最好。非常感谢你们在这方面的帮助。
我列举了一系列的错误和更正在网站http://info.bookscole.com/chapman。欢迎访问。
鸣谢
我应当感谢bill stenquist 和他在books/cole公司的同仁们对于本书的支持,有了他们的支持才有本书的出版.对于本书第一版的反馈我深感幸慰.这是我们通力合作的结果.
我还应感谢我的妻子ROSE和我的孩子们avi, david, Rachel, aaron, sarah, Naomi, shira ,and devorah.他们都是乐观的人,在工作上给于我很大的鼓励.