1.1 关于MATLAB
1.1
MATLAB是一种专业的计算机应用程序,起初用于工程科学的矩阵数学运算。目前,它已逐渐发展为一种极其灵活的计算体系,用于解决各种重要的科学技术问题。
MATLAB是Matrix与Laboratory两个词的组合,意为矩阵工厂(矩阵实验室),主要面向科学计算、可视化及交互式程序设计的高科技计算环境。
MATLAB将数值分析、矩阵计算、科学数据可视化及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式。
MATLAB具有以下优势特点:
(1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
(2)完备的图形处理功能,实现计算结果和编程的数据可视化;
(3)友好的用户界面及接近数学表达式的自然化语言,使用户易于学习和掌握;
(4)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大量方便实用的处理工具。
1.编程环境
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时报告出现的错误并进行出错原因分析。
2.简单易用
MATLAB是一个高级的矩阵(阵列)语言,它包含控制语句、函数、数据结构、输入和输出、面向对象编程等特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂应用程序(M文件)后,再一起运行。
MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入科学研究及工程计算各个领域的重要原因。
3.强大处理能力
MATLAB是一个包含大量计算算法的集合,其拥有600多个工程中要用到的数学运算函数,可以方便地实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而且经过了各种优化和容错处理。
在通常情况下,可以用MATLAB来代替底层编程语言,如C、C++等。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的函数集包括从最简单最基本的函数到诸如矩阵、特征向量、快速傅里叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程和偏微分方程组的求解、符号运算、傅里叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
4.图形处理
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图像处理、动画和表达式作图。这些均可用于科学计算和工程绘图。
MATLAB不仅具有一般数据可视化软件具有的功能(如二维曲线和三维曲面的绘制和处理等),而且对于一些其他软件所没有的功能(如图形的光照处理、色度处理和四维数据表现等),同样表现了出色的数据处理能力。同时对一些特殊的可视化要求,如图形对话等,MATLAB也有相应的功能函数,保证了不同层次的功能要求。
5.模块工具
MATLAB对许多专门领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。
这些工具箱(Toolbox)包括数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通信、电力系统仿真等。
6.程序接口
MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C/C++代码。同样,也允许用户编写可以和MATLAB进行交互的C/C++语言程序。另外,MATLAB网页服务程序还允许在Web应用中使用自己的MATLAB数学和图形程序。
MATLAB的一个重要特点就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
7.软件开发
在MATLAB开发环境中,用户更方便控制多个文件和图形窗口;在编程方面支持函数嵌套、有条件中断等;在图形化方面,有更强大的图形标注和处理功能;在输入输出方面,可以直接与Excel和HDF5进行连接。