您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > Matlab应用与仿真
1Matlab应用与仿真刘子龙武汉理工大学物理系2第一部分:Matlab简介MATLAB是MatrixLaboratory(矩阵实验室)的简称,是美国MathWorks公司()出品的商业数学软件,是一种用于算法开发、数据可视化、数据分析以及数值计算的高级计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。31.1Matlab的发展历程20世纪70年代中期,美国的CleveMoler博士开发了FORTRAN语言的两个子程序库——LINPACK和EISPACK,分别用于解线性方程和特征方程,它们代表了当时矩阵计算的最高水平20世纪70年代后期,CleveMoler博士在讲授线性代数课程时想教学生使用LINPACK和EISPACK程序库,当他发现学生花大量时间用于编写接口程序而背离开课的目的时,便着手利用FORTRAN语言编写了一套方便调用LINPACK和EISPACK的接口程序,并将其命名为MATLAB(矩阵实验室)。41983年-1984年,CleveMoler和JohnLittle(MathWorks公司总裁)等合作用C语言开发了第二代专业版MATLAB。并于1984年成立MathWorks公司,正式将MATLAB推向市场,这就是MATLAB的最初版本1.0。从这一代起MATLAB的核心就不再使用FORTRAN语言而是一直采用C语言编写。1.1Matlab的发展历程到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。现在MathWorks公司一般每年发布两个版本,上半年a版本,下半年b版本。5MATLAB的版本一览1.1Matlab的发展历程版本编号建造编号发布时间MATLAB8.0R2010a2010.3.5MATLAB7.9R2009b2009.9MATLAB7.8R2009a2009.3MATLAB7.7R2008b2008.10MATLAB7.6R2008a2008.3MATLAB7.5R2007b2007.9MATLAB7.4R2007a2007.36版本编号建造编号发布时间MATLAB7.3R2006b2006MATLAB7.2R2006a2006MATLAB7.1R14SP32005MATLAB7.0.4R14SP22005MATLAB7.0.1R14SP12004MATLAB7.0R142004MATLAB6.5.2R13SP22003MATLAB的版本一览(续)1.1Matlab的发展历程7版本编号建造编号发布时间MATLAB6.5.1R13SP12003MATLAB6.5R132002MATLAB6.1R12.12001MATLAB6.0R122000MATLAB5.3.1R11.11999MATLAB5.3R111999MATLAB5.2.1R10.11998MATLAB的版本一览(续)1.1Matlab的发展历程8版本编号建造编号发布时间MATLAB5.2R101998MATLAB5.1.1R9.11997MATLAB5.1R91997MATLAB5.0R81996MATLAB4.2cR71994MATLAB的版本一览(续)1.1Matlab的发展历程9版本编号建造编号发布时间MATLAB41992MATLAB3.51990MATLAB31987MATALB21986MATLAB1.01984MATLAB的版本一览(续)1.1Matlab的发展历程101.2Matlab的应用领域MATLAB对许多专门的领域都开发了功能强大的模块集(BLOCKSET)和工具箱(TOOLBOX)。每一个工具箱(MATLAB函数的子程序库)都是由特定领域的专家开发的,用户可以直接使用工具箱来进行相关的设计与研究而不需要自己编写代码。MATLAB的工具箱主要包括:优化设计、图像与数字信号处理、通信、控制系统、神经网络、模糊逻辑、小波分析、系统仿真、计算生物学和计算金融学等方面的应用。下面列举MATLAB的部分工具箱以供一览:11数学与优化OptimizationToolbox(优化工具箱)GlobalOptimizationToolbox(全局优化工具箱)SymbolicMathToolbox(符号工具箱)PartialDifferentialEquationToolbox(偏微分方程工具箱)统计与数据分析StatisticsToolbox(统计工具箱)NeuralNetworkToolbox(神经网络工具箱)Matlab的部分工具箱一览:12控制系统设计与分析ControlSystemToolbox(控制系统工具箱)SystemIdentificationToolbox(系统识别工具箱)FuzzyLogicToolbox(模糊逻辑工具箱)RobustControlToolbox(鲁棒控制工具箱)信号处理与通信SignalProcessingToolbox(信号处理工具箱)CommunicationsToolbox(通信工具箱)FilterDesignToolbox(滤波器设计工具箱)WaveletToolbox(小波分析工具箱)Matlab的部分工具箱一览:(续)13Matlab的部分工具箱一览:(续)图像处理ImageProcessingToolbox(图像处理工具箱)VideoandImageProcessingBlockset(视频和图像处理模块)ImageAcquisitionToolbox(图像采集工具箱)MappingToolbox(绘图工具箱)计算金融FinancialToolbox(金融工具箱)EconometricsToolbox(经济学工具箱)14图片来源:第二部分:Matlab基础及入门2.1MATLAB的Desktop操作桌面简介工作空间管理命令:who,whos,clear,save,load工作空间是指运行Maltlab期间生成的所有变量构成的空间。由Matlab命令行或m文件输入的命令和创建的所有变量,都会驻留在Matlab的工作空间,可在任何需要的时候调用。MATLAB的工作空间(Workspace)下一张幻灯片whos--列出工作空间的全部变量详细内容;clear—删除内存中的变量和函数;save,load—存储和加载变量162.1MATLAB的Desktop操作桌面命令窗口历史命令窗口当前目录工作空间内存变量命令提示符172.2简单的范例输入:sqrt(2*pi)+3/2-cos(2)结果:ans=4.4228,ans用于显示结果的默认变量名矩阵(‘[]’表示)的输入,各元素以空格或逗号分隔,分号是换行符矩阵乘法A*B“演算纸式”的算法语言!182.3在线帮助helpsqrthelp+命令名或函数名(或F1键)更详细的帮助信息19變量名稱是由英文字母、數字或下劃綫所組成開頭的第一個字母必須是英文字母(切忌数字开头)名稱長度不能超過32個字母會區分變數的大小寫(同C语言)變量不必聲明便可直接使用(不同于C语言)2.4变量的命名规则关于变量的数据类型:默认情况下,Matlab将所有数值型变量默认为双精度类型,无论输入的是整数还是实数。202.5Matlab的保留变量eps浮点运算误差=2.2204*10-16(最小数)j,i纯虚数Inf无穷大NaN非数(NotaNumber),如0/0pi圆周率ans用于返回结果的缺省变量名nargin所用函数的输入变量数目nargout所用函数的输出变量数目变量命名时须避免使用保留变量!212.6Matlab的数据类型Matlab中任何数据都以数组的形式存在,数组维数可以是零维(标量),一维、二维、多维若數組只有一維,稱之為向量(vector)向量可再細分為行向量(rowvector)與列向量(columnvector)數組若是二維,則稱之為矩陣(matrix)实际在Matlab中,列向量被当作只有1列的矩阵;行向量当作只有1行的矩阵;标量则是看作只有1行1列的矩阵。22数组字串数值元胞结构体函数句柄n-bit整数int8,uint8int16,uint16int32,uint32int64,uint64singledouble一般数值2.6Matlab的数据类型默认例如:A=int8(12)≌float23在计算机内,双精度数需要8个字节(Byte)来存储;至于双精度的复数,则占16个字节(实部和虚部);单精度的实数占4个字节;整数类:int8占1字节,int16占2字节,int32占4字节,int64占8字节;对于字符串,每个字符占2个字节。A=2;B=rand(1000);C=i*B;whos%查询内存变量NameSizeBytesClassA1x18doublearrayB1000x10008000000doublearrayC1000x100016000000doublearray(complex)Grandtotalis2000001elementsusing24000008bytes分号的另一含义:一个命令行的末尾如果是分号,则结果不显示在屏幕,否则将结果输出到屏幕。242.6.1一维数值型数组Matlab的向量是以一维数组來表示行向量里,元素与元素之间用空格键或逗号隔开列向量以分号隔开(‘换行’)A=[1,2,3]A=123A=[1;2;3]A=123分号的另一含义:一个命令行的末尾如果是分号,则结果不显示在屏幕,否则将结果输出到屏幕。25构建一维数组的方法[]直接输入(英文状态)A=[1,2,3]A=123A=[1;2;3]A=123使用冒号“:”创建(格式a:increment:b)x=0:0.1:2*pi;%建立从0到2的行向量,%元素增量0.1y=sin(x);%元素个数和x相同的行向量plot(x,y);%二维绘图函数,画sin函数图像行向量列向量“%”后面的所有文字都是注释!26sin(x)的函数图像图形窗口白色区域代表坐标轴内的区域所有的绘图命令(比如plot)执行后都会自动弹出一个图形窗口显示绘制的图形27使用linspace(a,b,n)命令(线性采样)创建x=linspace(0,2*pi,100);%建立从0到2的%行向量,元素数目100y=sin(x);plot(x,y);n=length(x)%查询向量t的长度n=100x=x;%“”共轭转置符号,行向量与列向量%相互转换(注意区别“.’”!)28表2.3.2基本的向量處理函數函數說明sum(v)計算向量v的總和prod(v)計算向量v的乘積max(v)取出向量v的最大值min(v)取出向量v的最小值sort(v)將向量v裡的元素由小到大排列sort(v,'descend')將向量v裡的元素由大到小排列cumsum(v)計算向量v的累加(cumulativesum)cumprod(v)計算向量v的累乘(cumulativeproduct)基本的向量处理函数292.6.2二维数值型数组称二维数组为矩阵(matrix)一个m×n的矩陣代表矩阵具有m个行n个列要建立矩陣,同一行的元素用空格或逗号隔開,行與行之間用分號隔開m1=[134;357]m2=[2,3,1,4;4,8,5,0;3,3,1,2]30构建二维数组(矩阵)的方法使用[]直接输入m1=[134;357]m2=[2,3,1,4;4,8,5,0;3,3,1,2]利用向量或矩阵的组合a=1:3;b=2:4;c=[a,b],d=[a;b]c=123234d=123234元素的增量=131第4列第1行第2行第3行第1列第2列第3列第1维度第2维度cat(1,a,b);%沿列维创建,相当于[a;b]cat(2,a,b);%沿行维创建,相当于[a,b]利用命令cat(di
本文标题:Matlab应用与仿真
链接地址:https://www.777doc.com/doc-5841285 .html