编辑本段基本功能
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和 Mathematica、 Maple并称为三大数学软件。它在数学类科技应用软件中在 数值计算方面首屈一指。MATLAB可以进行 矩阵运算、绘制函数和数据、实现算法、创建用户界面、连 接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、 图像处理、 信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对 C, FORTRAN, C++ , JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。编辑本段应用
MATLAB 产品族可以用来进行以下各种工作: ● 数值分析 ● 数值和符号计算 ● 工程与科学绘图 ● 控制系统的设计与仿真 ● 数字图像处理 技术 ● 数字信号处理 技术 ● 通讯系统设计与仿真 ● 财务与金融工程 MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。编辑本段发展历程
20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。 版本更新:版本[1] | 建造编号 | 发布时间 |
MATLAB 1.0 | 1984 | |
MATALB 2 | 1986 | |
MATLAB 3 | 1987 | |
MATLAB 3.5 | 1990 | |
MATLAB 4 | 1992 | |
MATLAB 4.2c | R7 | 1994 |
MATLAB 5.0 | R8 | 1996 |
MATLAB 5.1 | R9 | 1997 |
MATLAB 5.1.1 | R9.1 | 1997 |
MATLAB 5.2 | R10 | 1998 |
MATLAB 5.2.1 | R10.1 | 1998 |
MATLAB 5.3 | R11 | 1999 |
MATLAB 5.3.1 | R11.1 | 1999 |
MATLAB 6.0 | R12 | 2000 |
MATLAB 6.1 | R12.1 | 2001 |
MATLAB 6.5 | R13 | 2002 |
MATLAB 6.5.1 | R13SP1 | 2003 |
MATLAB 6.5.2 | R13SP2 | 2003 |
MATLAB 7 | R14 | 2004 |
MATLAB 7.0.1 | R14SP1 | 2004 |
MATLAB 7.0.4 | R14SP2 | 2005 |
MATLAB 7.1 | R14SP3 | 2005 |
MATLAB 7.2 | R2006a | 2006 |
MATLAB 7.3 | R2006b | 2006 |
MATLAB 7.4 | R2007a | 2007 |
MATLAB 7.5 | R2007b | 2007 |
MATLAB 7.6 | R2008a | 2008 |
MATLAB 7.7 | R2008b | 2008 |
MATLAB 7.8 | R2009a | 2009.3.6 |
MATLAB 7.9 | R2009b | 2009.9.4 |
MATLAB 7.10 | R2010a | 2010.3.5 |
MATLAB 7.11 | R2010b | 2010.9.3 |
编辑本段新版本新功能
Release 2010a 的新功能 Release 2010a 包括 MATLAB 和 Simulink 的若干新功能丶一款新产品以及对其它 85 款产品的更新和缺陷修复。已经购买 MathWorks 软件维护服务的用户可以下载产品更新。 MATLAB 产品系列的新功能包括: ●增加更多多线程数学函数,增强文件共享丶路径管理功能以及改进 MATLAB 桌面 ● 新增用于在 MATLAB 中进行流处理的系统对象,并在Video and Image Processing Blockset 和 Signal Processing Blockset 中提供超过 140 种支持算法 ● 针对 50 多个函数提供多核支持并增强性能,并对图像处理工具箱中的大型图像提供更多支持 ● 在全局优化工具箱和优化工具箱中提供新的非线性求解器 ●能够从 Symbolic Math Toolbox 中生成 Simscape 语言方程 ● 在 SimBiology 中提供随机近似最大期望 (SAEM) 算法和药动学给药方案支持 Simulink 产品系列的新功能包括: ● 在 Simulink 中提供可调参数结构丶触发模型块以及用于大型建模的函数调用分支 ● 在 嵌入式 IDE 链接和目标支持包中提供针对 Eclipse丶嵌入式 Linux 及 ARM 处理器的代码生成支持 ●在 IEC 认证工具包中提供对 Real-Time Workshop Embedded Coder 和 PolySpace 产品的 ISO 26262 认证 ● 在 DO 鉴定工具包中提供扩展至模型的 DO-178B 鉴定支持 ●Simulink PLC Coder,用于生成 PLC 和PAC IEC 61131 结构化文本的新产品编辑本段特点
1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来; 2) 具有完备的图形处理功能,实现计算结果和编程的可视化; 3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握; 4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具.编辑本段优势
(1)友好的工作平台和编程环境
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。(2)简单易用的程序语言
Matlab一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(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进行连接。编辑本段工具
常用工具箱
MATLAB包括拥有数百个内部函数的主包和三十几种工具包。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。 开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。 Matlab Main Toolbox——matlab主工具箱 Control System Toolbox——控制系统工具箱 Communication Toolbox——通讯工具箱 Financial Toolbox——财政金融工具箱 System Identification Toolbox——系统辨识工具箱 Fuzzy Logic Toolbox——模糊逻辑工具箱 Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱 Image Processing Toolbox——图象处理工具箱 LMI Control Toolbox——线性矩阵不等式工具箱 Model predictive Control Toolbox——模型预测控制工具箱 μ-Analysis and Synthesis Toolbox——μ分析工具箱 Neural Network Toolbox——神经网络工具箱 Optimization Toolbox——优化工具箱 Partial Differential Toolbox——偏微分方程工具箱 Robust Control Toolbox——鲁棒控制工具箱 Signal Processing Toolbox——信号处理工具箱 Spline Toolbox——样条工具箱 Statistics Toolbox——统计工具箱 Symbolic Math Toolbox——符号数学工具箱 Simulink Toolbox——动态仿真工具箱 Wavele Toolbox——小波工具箱常用函数
Matlab内部常数 [2] eps:浮点相对精度 exp:自然对数的底数e i 或 j:基本虚数单位 inf 或 Inf:无限大, 例如1/0 nan或NaN:非数值(Not a number),例如0/0 pi:圆周率 p(= 3.1415926...) realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin: 函数的输入引数个数 nargout: 函数的输出引数个数 lasterr:存放最新的错误信息 lastwarn:存放最新的警告信息 MATLAB常用基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):下取整,即舍去正小数至最近整数 ceil(x):上取整,即加入正小数至最近整数 rat(x):将实数x化为多项分数展开 rats(x):将实数x化为分数表示 sign(x):符号函数 (Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 rem(x,y):求x除以y的余数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x) :自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数或 log2(x):以2为底的对数 log10(x):以10为底的对数 MATLAB常用三角函数 sin(x):正弦函数 cos(x):余弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反余弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):双曲正弦函数 cosh(x):双曲余弦函数 tanh(x):双曲正切函数 asinh(x):反双曲正弦函数 acosh(x):反双曲余弦函数 atanh(x):反双曲正切函数 适用于向量的常用函数有 min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差 sort(x): 对向量x的元素进行排序(Sorting) length(x): 向量x的元素个数 norm(x): 向量x的欧氏(Euclidean)长度 sum(x): 向量x的元素总和 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和 cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内积 cross(x, y): 向量x和y的外积 MATLAB基本绘图函数 plot: x轴和y轴均为线性刻度(Linear scale) loglog: x轴和y轴均为对数刻度(Logarithmic scale) semilogx: x轴为对数刻度,y轴为线性刻度 semilogy: x轴为线性刻度,y轴为对数刻度 plot绘图函数的参数 字元 颜色 字元 图线型态 y 黄色 . 点 k 黑色 o 圆 w 白色 x x b 蓝色 + + g 绿色 * * r 红色 - 实线 c 亮青色 : 点线 m 锰紫色 -. 点虚线 -- 虚线 注解 xlabel('Input Value'); % x轴注解 ylabel('Function Value'); % y轴注解 title('Two Trigonometric Functions'); % 图形标题 legend('y = sin(x)','y = cos(x)'); % 图形注解 grid on; % 显示格线 二维绘图函数 bar 长条图 errorbar 图形加上误差范围 fplot 较精确的函数图形 polar 极座标图 hist 累计图 rose 极座标累计图 stairs 阶梯图 stem 针状图 fill 实心图 feather 羽毛图 compass 罗盘图 quiver 向量场图 [1] MATLAB中有趣的演示实例 MATLAB中也同样有许多有意思的实例,为提高读者对MATLAB和Simulink的兴趣,特举部分以供参考。具体如下,运行的时候只要将“:”前面的代码复制到MATLAB中就可以了,随之会出现各种各样的演示实例,对初学者帮助不小哦。 ◆ 平面与立体绘图 graf2d :XY平面绘图(火柴棒) graf2d2 :XYZ立体绘图(切片) hndlgraf :平面显示线型处理窗口及命令演示 hndlaxis :平面显示处理窗口及命令演示 graf3d :立体显示处理窗口及命令演示 ◆ 复杂函数的三维绘图 cplxdemo :复杂的XYZ立体图形 ◆ 等高线绘制 quivdemo :等高线箭头显示 ◆ 动画 lorenz : Lorenz吸引子动画显示 ◆ 电影 vibes : L-形薄膜振动 ◆ Fourier变换 sshow sunspots :太阳黑点数据的傅里叶分析 fftdemo :分析噪声序列中两组数据的相关度 ◆ 数据拟合 sshow fitdemo :显示非线性数据拟合过程 census :预测世界人口 spline2d :样条拟合 ◆ 稀疏矩阵 sshow sparsity :降阶 ◆ 游戏 xpbombs :仿Windows系统自带的扫雷游戏 life :生命发展游戏 ◆ 三维效果图 klein1 :肤色三维效果图 tori4 :四个首尾相接的圆环 spharm2 : 球形和声 cruller :类似油饼的东西 xpklein : Klein瓶 bottle modes : L-形薄膜的12中模态 logo :MATLAB的Logo xpquad :不同比例的巴尔体超四方体 truss :二维桁架的12个模模态 tr***el :旅行商问题动画演示 wrldtrv :在地球仪上演示两地间的飞行线路 makevase :通过点击鼠标来制作花瓶 xpsound :声音样本分析 funfuns :综合了找零点,最小化和单输入函数积分功能 sshow e2pi : e^pi或者pi^e quake :地震波可视化 penny :便士可视化 imageext :改变图像的映射颜色 earthmap :地球仪 ◆ 优化工具箱 bandem :香蕉最优化展示 expo-style banana optimization sshow filtdem :滤波效果演示 filter effect demo sshow filtdem2 :滤波设计演示 filter design demo cztdemo : FFT和CZT (两种不同类型的Z-变换算法) phone :演示电话通声音的时间与频率的关系 sigdemo1 :离散信号的时频图,可用鼠标设置 sigdemo2 :连续信号的时频图,可用鼠标设置 filtdemo :低通滤波器的交互式设计 moddemo :声音信号的调制 sosdemo :数字滤波器的切片图 ◆ 神经网络工具箱 neural :神经网络模块组 firdemo :二维FIR滤波器 nlfdemo :非线性滤波器 dctdemo :DCT演示 mlpdm1 :利用多层感知器神经网络拟合曲线动画 mlpdm2 :利用多层感知器神经网络进行XOR问题运算 ◆ 模糊逻辑工具箱 invkine :运动逆问题 juggler :跳球戏法 fcmdemo : FCM slcp : 类似倒立摆动画 slcp1 :类似倒立摆动画cart and a varying pole slcpp1 :类似倒立摆动画,有两个摆,一个可以变化 sltbu :卡车支援 slbb :类似于翘翘板- 扩展阅读:
-
- 1
Matlab官方网站:http://www.mathworks.com
- 2
Matlab中国:http://www.mathworks.cn/
- 3
MATLAB中文爱好者论坛:http://www.matlabfan.com/(推荐)
- 4
Matlab中文论坛:http://www.ilovematlab.cn/
- 5
Matlab百度贴吧:http://tieba.baidu.com/f?kw=matlab&fr=ala0
- 1