MATLAB从基础到精通
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 MATLAB简介

MATLAB是由美国Mathworks公司开发的用于数据分析处理、算法开发应用、数据可视化及图形处理的科学软件。使用MATLAB产品,相比传统编程语言,例如C、C++和Firtran等,能更为快速地解决技术计算的问题,因而MATLAB被越来越广泛地应用于科学计算、嵌入式系统、控制系统、数字信号处理、图像和视频处理、通信系统、计算金融学等领域。

MATLAB是新一代的高性能计算语言。它集成了计算、可视化和编程在一个友好的环境中,问题和解决方案都是以熟悉的数学符号表示。典型用途包括如下几种。

● 数学和计算。

● 算法开发。

● 建模和仿真。

● 数据分析、挖掘和可视化。

● 科学和工程制图。

● 图形用户界面的应用开发。

1.1.1 MATLAB的发展历程

美国新墨西哥大学计算机科学系主任Cleve Moler和他的同事于20世纪70年代编写了MATLAB,最早的MATLAB是用Fortran语言编写的,早期版本以简单矩阵运算为主,主要是为了减轻学生编程的负担。MATLAB为矩阵(Matrix)和实验室(LABoratory)前几个英文字母组合。随后在1984年Little、Moler等人共同创立了MathWorks公司,正式把MATLAB产品推向市场。此后MathWorks公司不断完善产品,图形图像处理、符号运算等多种功能被添加到MATLAB中,同时随着信息技术、科学算法的不断发展,不同领域中需要使用的算法也被集成为工具箱加入MATLAB。目前,MATLAB已成为国际公认的优秀计算软件,它在各领域的应用也越来越广,并且有着更广阔的应用前景。

1.1.2 MATLAB的优势和特点

近年来MATLAB在各领域的应用越来越广泛,这主要得益于MATLAB具有以下优势。

1.编程效率高

对于复杂算法的开发,MATLAB函数库提供了大量函数可供直接调用,面向专业领域的工具箱减轻了以往需要复杂编程开发的负担,相比一般编程语言可大大节省算法开发时间,而对于非算法研究领域人员,如果只想在自己的领域使用已有的算法,可灵活地调用MATLAB编写好的函数。

2.使用方便

MATLAB多数工具箱提供了图形界面操作,无须编写代码,直接通过界面操作。

3.扩充能力好,移植性强

通过MATLAB编写的程序可通过多种途径与常用的编程语言、应用软件连接,扩充移植能力强。

4.开放性好

MATLAB一般函数都是以m文件形式存在的,可以直接打开相应算法的m文件,查阅源代码。

5.简单易用的程序语言

MATLAB语言特征与C语言相似,而且更加简单,更加符合专业人员对算法的书写格式。

6.高效方便的矩阵运算

MATLAB的基本数据单位是矩阵,与数学、工程中常用的形式十分相似,故用MATLAB来解决问题较为简单。

7.方便的绘图功能

MATLAB提供了一系列绘图函数,可方便地对数据进行可视化分析。

下面简单介绍MATLAB主要特点。

● 科学计算的高级语言,为算法开发提供高效的实现途径。

● 提供完善的开发环境,系统管理代码、文件、数据。

● 提供友好的交互界面,用于探索、设计、解决实际问题。

● 内含大量的可直接使用的数学函数,涉及线性代数、统计学、傅里叶分析、滤波、优化及数值积分等方面。

● 提供二维和三维图用于数据的可视化分析。

● 可以自定义生成图形用户界面。

● 编写的代码可与外部的程序和其他编程语言集成,例如C、C++、Fortran、Java和Microsoft Excel等。

1.1.3 MATLAB的系统组成

MATLAB主要由以下几部分组成。

1.开发环境

开发环境帮助使用者高效地处理MATLAB函数和文件,其中许多环境提供了友好的图形界面,可交互使用,主要包括:命令窗口,代码编辑、调试、分析窗口,工作空间窗口,浏览器查看帮助窗口。

2.数学函数库

数学函数库包含了从初等函数(如求和、正弦、余弦)到更为复杂的算法(如矩阵求逆、矩阵特征值、快速傅里叶变换)在内的大量数学函数。

3.MATLAB语言

MATLAB语言是高级矩阵/数组语言,具有流程控制、函数调用、数据结构、输入/输出、面向对象编程等程序语言特征。利用MATLAB语言既可以进行小规模程序设计,快速完成算法设计的基本任务,也可进行大规模编程,开发复杂的程序算法。

4.图形功能

MATLAB提供了图形功能,可视化地显示向量和矩阵,同时提供在图形上注释和打印功能。此外还包括二维和三维数据可视化、图像处理、动画生成、演示图形等高级功能;用户自定义图形对象,建立完整的图形用户界面等低级功能。

5.应用程序接口

利用MATLAB提供的外部应用程序可以开发C/C++和Fortran与MATLAB交互的程序算法。包括将MATLAB作为计算引擎的MATLAB引擎技术,建立动态链接调用MATLAB程序文件和MAT数据文件读/写。

综上可以看出,MATLAB是一个功能强大的系统,集数据计算、图形管理、程序开发为一体,向用户提供了友好的操作界面环境,同时通过与其他编程环境的交互操作,可以充分利用MATLAB语言的优势,大大缩短算法开发周期。