步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
(3)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
(4)出色的图形处理功能
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
(5)应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(6)实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
(7)应用软件开发(包括用户界面)
在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。
1、3 MATLAB的功能
MATLAB有着强大的功能,可以用来进行多种工作,具体如下: 数值分析、数值和符号计算、工程与科学绘图、控制系统的设计与仿真、数字图像处理技术、数字信号处理技术、通讯系统设计与仿真、财务与金融工程等。由于MATLAB功能太多,不可能一一介绍,并且每一个功能涉及内容又很多,
介绍起来比较繁琐,因此我们只以图形处理功能为例,通过对MATLAB图形处理的介绍来展示它的强大功能,并以点代面,进而进一步体现MATLAB的发展现状。
MATLAB提供了大量用于将矢量数据以曲线图形方式进行显示的函数,包括用于实现图标绘制、科学曲线绘制和各种专业数据可视化显示的二维图形绘制函数;用于表示向量场的数据及二元函数的图形表达的三维图形绘制函数;提供了用于图形效果高级处理的相关函数以及图形句柄操作函数;柱状图、饼图和直方图等特殊图形绘制函数;动画制作等丰富的3D可视化功能。
1、3、1 二维图形(Two dimensional plotting)
1. 基本绘图函(Basic plotting function):Plot, semilogx, semilogy, loglog, polar, plotyy
(1). 单矢量绘图(single vector plotting):plot(y),矢量y的元素与y元素下标之间在线性坐标下的关系曲线。
例1:单矢量绘图
y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20];
plot(y)
可以在图形中加标注和网格,
例2:给例1 的图形加网格和标注。
y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; plot(y)
title('简单绘图举例'); xlabel('单元下标'); ylabel('给定的矢量');grid
(2). 双矢量绘图(Double vector plotting):如x和y是同样长度的矢量, plot(x,y)命令将绘制y元素对应于x元素的xy曲线图。
例:双矢量绘图。 x=0:0.05:4*pi; y=sin(x); plot(x,y)
(3). 对数坐标绘图(ploting in logarithm coordinate): x轴对数 semilogx, y轴对数semilogy, 双对数loglog, 例:绘制数组y的线性坐标图和三种对数坐标图。
y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; subplot(2,2,1) plot(y)
subplot(2,2,2) semilogx(y) subplot(2,2,3) semilogy(y) subplot(2,2,4) loglog(y)
(4)极坐标绘图( Plotting in polar coordinate): polar(theta,rho) theta—角度, rho—半径 例:建立简单的极坐标图形。 t=0:.01:2*pi;
polar(t,sin(2*t).*cos(2*t))
多重曲线绘图(Multiple curve plotting)
(5)一组变量绘图(A group variable plotting) plot(x,y)
(a) x为矢量,y为矩阵时plot(x,y)用不同的颜色绘制y矩阵中各行或列对应于x的曲线。 例1:
x=0:pi/50:2*pi; y(1,: )=sin(x); y(2,:) =0.6*sin(x); y(3, :)=0.3*sin(x); plot(x,y)
(b) x为矩阵,y为矢量时绘图规则与(a)