0.1 MATLAB的基本概况
MATLAB是MatrixLaboratory的简称,借助其语言、工具和内置数学函数,可以探求多种方法,能比电子表格或传统编程语言(如C/C++或Java)更快地求取结果。MATLAB应用范围十分广泛,包括信号处理和通信、图像和视频处理、控制系统、测试和测量、计算金融学及计算生物学等众多应用领域。在各行业和学术机构中,有一百多万工程师和科学家使用MATLAB这一技术计算语言。
0.1.1 MATLAB的发展历史
20世纪70年代末到80年代初,时任美国新墨西哥大学教授的克里夫·莫勒尔教授(CleveMoler)为了让学生在没有掌握FORTRAN语言的情况下,能方便地使用LINPACK及EISPACK(当时在数值线性代数领域最高水平的两大软件包)的子程序,完成了第一个版本MATLAB1.0的编写。这个版本的MATLAB只能进行简单的矩阵运算,例如矩阵转置、计算行列式和特征值,此版本软件分发出大约二三百份。
1984年,杰克·李特(Jack Little)、克里夫·莫勒尔(Cleve Moler)和斯蒂夫·班格尔特(SteveBangert)合作成立了MathWorks公司,正式把MATLAB推向市场。MATLAB最初是由莫勒尔用FORTRAN编写的,李特和班格尔特花了约一年半的时间用C重新编写了MATLAB并增加了一些新功能,同时,李特还开发了第一个系统控制工具箱,其中一些代码至今仍然在使用。C语言版的面向MS-DOS系统的MATLAB1.0在拉斯维加斯举行的IEEE决策与控制会议(IEEE Conferenceon DecisionandControl)上正式推出,它的第一份订单只售出了10份拷贝,而现在,根据MathWorks自己的数据,世界上一百多个国家超过一百万工程师和科学家在使用MATLAB和Simulink。
1993年,MicrosoftWindows版MATLAB4.0面世,使之应用范围越来越广。
1994年,MATLAB4.2版推出,其扩充了MATLAB4.0版本的功能,尤其在图形界面设计方面提供了新的方法。
1997年,MATLAB5.0版推出,其定义了更多的数据结构,如单元结构、数据结构体、多维矩阵、对象与类等,使其成为一种更方便编程的软件。
1999年,MATLAB5.3版推出,该版本在很多方面又进一步改进了MATLAB语言的功能。
2000年,MATLAB6.0版于10月底推出,其在核心数值算法、界面设计、外部接口、应用桌面等诸多方面有了极大的改进。
2002年,MATLAB6.5版推出,其最大的特点是采用了JIT加速器,使MATLAB的运算速度进一步提高。
2005年,MATLAB7.1版于9月推出,提供了MATLAB、Simulink的升级及其他75个模块的升级,并具有用于数据分析、大规模建模、固定点开发、编码等的新特性。
从2006年开始,每年MATLAB都会进行两次更新,并将“建造编号”以相应的年份作为标记,方便用户了解所使用MATLAB版本的发布时间以及相应的更新信息。
2014年,MATLAB推出了8.0汉化版,极大地方便了中国用户。
2015年,推出了MATLABR2015版本。
0.1.2 MATLAB相关产品概述
除了MATLAB, MathWorks旗下还有另外两个很重要的产品,分别为Simulink与Polyspace。
Simulink是一个用于动态系统,进行多域建模和模型设计的平台。它提供了一个交互式图形环境以及一个自定义模块库,并可针对特定应用加以扩展,可应用于控制系统设计、信号处理和通信及图像处理等众多领域。
Polyspace提供代码验证,可确保消除源代码中的溢出、除零、数组访问越界及其他运行时错误。此类产品可以证明源代码中不存在某些运行时错误,使工程师能够选择并跟踪嵌入式软件质量的指标和阈值,帮助软件团队更好地定义质量目标,并更快地实施。该软件已经在汽车、航空、国防及工业自动化和机械行业中得到广泛应用。Polyspace界面如图0.1所示。
图0.1 Polyspace界面
0.1.3 MATLAB的主要特性
MATLAB以其良好的开放性和运行可靠性,已经成为国际控制界公认的标准计算软件,在国际上三十多个数学类科技应用软件中,MATLAB在数值计算方面独占鳌头。MATLAB具有以下几点主要特性:
(1)特有的高级语言。为用户在计算机上进行数值计算、可视化和应用程序开发提供了一种方便易懂、有效可行的高级编程语言。
(2)交互式环境功能完备,用户体验优秀。为实现迭代式探查、设计及问题求解提供了便利。
(3)数学函数库齐备。为线性代数、统计、傅立叶分析、筛选、优化、数值积分以及常微分方程的求解提供了稳定的计算机实现途径。
(4)图形处理功能强大完备。MATLAB提供了数据可视化的内置图形以及用于创建自定义绘图的工具。通过这些内置图形与绘图工具,MATLAB为用户提供了一套功能强大而完备的图形处理解决方案。
(5)开发工具与时俱进。MATLAB是用于改进代码质量和可维护性,并最大限度地发挥性能的开发工具。
(6)GUI开发充分满足自定义需求。
0.1.4 MATLAB的系统组成
MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)5大部分构成。
1)MATLAB开发环境
MATLAB开发环境是一套方便用户使用MATLAB函数和文件的工具集,其中许多工具是图形化用户接口。它是一个集成化的工作空间,可以让用户输入、输出数据,并提供了M文件的集成编译和调试环境。它包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档等。
2)MATLAB数学函数库
MATLAB数学函数库包含了大量的计算算法,从基本运算(如加法)到复杂算法(如矩阵求逆、快速傅立叶变换等),让读者体会其强大的数学计算功能。
3)MATLAB语言
MATLAB语言是一种高级的基于矩阵/数组的语言,包括程序流控制、函数、脚本、数据结构、输入/输出、工具箱和面向对象编程等特色。用户既可以用它来快速编写简单的程序,又可以用它来编写庞大复杂的应用程序。
4)MATLAB图形处理系统
MATLAB图形处理系统使得它能方便地图形化显示向量和矩阵,而且能对图形添加标注及进行打印。它包括强大的二维及三维图形函数、图像处理和动画显示等函数。
5)MATLAB应用程序接口
MATLAB应用程序接口(API)可以使MATLAB方便地调用C和FORTRAN程序,以及在MATLAB与其他应用程序间建立客户/服务器关系。