MATLAB 2008全程指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

1984年,Cleve Moler和John Little成立了MathWorks公司,发行了MATLAB第1版(DOS版本1.0),正式把MATLAB推向市场。MATLAB的第一个商业化的版本是同年推出的是3.0的DOS版本。其后MathWorks公司继续进行MATLAB的研究和开发,逐步将其发展成为一个集数值处理、图形处理、图像处理、符号计算、文字处理、数学建模、实时控制、动态仿真、信号处理为一体的数学应用软件,并且成为目前世界上使用最广泛的科学计算软件之一。

2006年3月,MathWorks公司正式发布了MATLABR2006a(即MATLAB7.2版)。从这一个版本开始,MathWorks公司将每年进行两次产品发布,时间分别在每年的3月和9月,而且,每一次发布都会包含所有的产品模块,如产品的newfeature、bugfixes和新产品模块的推出。2008年3月1日,MATLABR2008a发布,即MATLAB7.6版和Simulink7.1版。在这个版本中包括了以下重要更新:

(1)完全实现面向对象编程。

在MATLAB的早期版本里面,也有class的概念,不过功能不强,过程烦琐。而新的设计写出来的类和在python里面写的看起来差不多,吸收了Python和C#的优点,除了支持封装(encapsulation),继承(inheritance)和多态(polymorphism)这些基本特性以外,还支持了一些新兴的特性,包括属性(property),事件(event)和静态方法(static method)。

(2)支持Handle类型——用另外一种说法,就是支持函数调用传引用。

以前MATLAB传递参数只有一种方法,copy on write。就是说,当你传一个东西进去,如果它要发生改变,那么,这个东西会整个copy一份,然后修改会在副本上生效。这使得实现动态数据结构变得非常困难。因此,传统上MATLAB擅长于以矩阵为基础的算法,但是对于以经典动态数据结构为基础的算法,比如动态列表,哈希表,搜索树,图等,就力不从心了。这个新版本终于引入了对引用的支持,这将使MATLAB实现经典数据结构和算法变得前所未有的轻松。现在,数值和统计算法与经典算法越来越多地合流,很多应用都需要同时使用两方面的算法,MATLAB的这个变化正好适应了这种需求。

(3)引入了名空间的管理。

以前,MATLAB所有的函数都在同一个global的名空间下面。比如两个工具包里面出现了同名函数,解决起来很麻烦。比如现在有两个算法叫LDA,一个是Latent Dirichlet Allocation,一个是Linear Discriminant Analysis,在一个应用中需要同时用到两个算法,而写这两个算法的人各自把它们命名为lda.m,那么问题就出来了。一种naive的方法是改名字,不过会直接破坏掉那些toolbox里面对那个函数的依赖。而这个版本,它借鉴其他高级语言的经验,终于引入了namespace,给这个问题一个很好的解决。

从这些特点看来,MATLAB这个版本的重要改变,就是全面吸收其他高级语言的特性,从一个数值运算语言开始迈向一个以数值计算为强项的通用语言,以应对复杂或者更大规模应用的需要。

本书内容

本书从使用者的角度出发,通过融经验技巧于一体的典型事例讲解,由入门到提高系统地介绍了MATLAB及其工具箱的基本功能与使用,包括MATLAB基础知识、数值计算、符号计算、编程基础、文件操作、数据可视化、图像处理、优化工具箱、信号处理、Simulink仿真、GUI设计、MATLAB与MS OFFICE和混合编程等功能的使用方法。在配套光盘中附有部分实例的源文件,以方便读者理解和掌握相关知识。以下是本书知识导读。

本书附赠资源介绍

本书案例源文件可在www.broadview.com.cn中下载。

1.源文件的运行环境

操作系统:Windows vista/Windows XP/Windows 2000

开发工具:MATLAB R2008a

2.源文件文件夹

包括本书涉及的所有源文件,读者可以在学习的过程中,直接将其复制到MATLAB的当前工作目录下,提高学习效率。

联系我们

全书第1、2、3、4章由彭雪峰负责编写,第5、6、13章由王文鹏负责编写,第7、8、12章由刘家佳负责编写,第9、10、11、14章由董辰辉负责编写。

由于编者水平及使用经验有限,不妥之处在所难免,望各位读者不吝赐教,联系E-mail:jsj@phei.cm.cn。

编者

2008年12月