1MATLAB软件简介1.1概述MATLAB是美国MathWorks公司开发的大型数学计算软件,它具有强大的矩阵处理功能和绘图功能,已经广泛地应用于科学研究和工程技术的各个领域在科学研究和工程应用中,往往要进行大量的数学计算,其中包括矩阵运算。这些运算一般来说难以用手工精确和快捷地进行,而要借助计算机编制相应的程序做近似计算。MATLAB的主要功能具体包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,并集应用程序和图形于一便于使用的集成环境中。在此环境下所解问题的Matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程。MATLAB语言的这一特点大大降低了对使用者的数学基础和计算机语言知识的要求,而且使编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝。综上所述,Matlab语言有如下特点:1.编程语言接近人的思维方式,编程效率高,易学易懂它是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,且比其他计算机语言更加接近我们书写计算公式的思维方式,用Matlab编写程序犹如在演算纸上排列出公式与求解问题。因此,Matlab语言也可通俗地称为演算纸式科学算法语言由于它编写简单,所以编程效率高,易学易懂。2.程序调试方便灵活,Matlab语言是一种解释执行的语言,它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。Matlab语言与其它语言相比,省去了编辑、编译、连接以及执行和调试四个步骤。它把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度。Mat1ab语言不仅是一种语言,广义上讲是一种该语言开发系统,即语言调试系统。3.源程序开放,库函数丰富,扩展能力强高版本的Matlab语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,而且Matlab的库函数同用户文件在形成上一样,所以用户文件也可作为Matlab的库函数来调用。因而,用户可以根据自己的需要方便地建立和扩充新的库函数,以便提高Matlab使用效率和扩充它的功能。4.程序语言简洁,准确,涵义丰富Mat1ab语言中最基本最重要的成分是函数,其一般形式为:一个函数由函数名,输入变量和输出变量组成,同一函数名F,不同数目的输入变量(包括无输入变量)及不同数目的输出变量,代表着不同的含义。这不仅使Matlab的库函数功能更丰富,使得Matlab编写的M文件简单、短小而高效。5.矩阵和数组运算高效方便Matlab语言中规定了矩阵的算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符,而且这些运算符大部分可以毫无改变地照搬到数组间的运算,这使得程序设计的自由度大。另外,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。在此基础上,高版本的Matlab已逐步扩展到科学及工程计算的其它领域。6.方便的而强大的绘图功能Matlab的绘图是十分方便的,它有一系列绘图函数(命令),例如线性坐标、对数坐标,半对数坐标及极坐标,均只需调用不同的绘图函数(命令),在图上标出图题、XY轴标注,格(栅)绘制也只需调用相应的命令,简单易行。另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。这种为科学研究着想的设计是通用的编程语言所不及的。总之,Matlab语言的设计思想可以说代表了当前计算机高级语言的发展方向。1.2MATLAB函常用数汇总函数名功能描述addpath增加一条搜索路径rmpath删除一条搜索路径demo运行Matlab演示程序type列出.M文件doc装入超文本文档version显示Matlab的版本号help启动联机帮助what列出当前目录下的有关文件lasterr显示最后一条信息whatsnew显示Matlab的新特性lookfor搜索关键词的帮助which造出函数与文件所在的目录path设置或查询Matlab路径管理变量与工作空间用命令clear删除内存中的变量与函数pack整理工作空间内存disp显示矩阵与文本save将工作空间中的变量存盘length查询向量的维数size查询矩阵的维数load从文件中装入数据who,whos列出工作空间中的变量名文件与操作系统处理命令cd改变当前工作目录edit编辑.M文件delete删除文件matlabroot获得Matlab的安装根目录diary将Matlab运行命令存盘tempdir获得系统的缓存目录dir列出当前目录的内容tempname获得一个缓存(temp)文件!执行操作系统命令窗口控制命令echo显示文件中的Matl中的命令more控制命令窗口的输出页面format设置输出格式启动与退出命令matlabrc启动主程序quit退出Matlab环境startupMatlab自启动程序运算符号与特殊字符+加...续行标志-减,分行符(该行结果不显示)*矩阵乘;分行符.^向量乘方矩阵转置kron矩阵kron积.向量转置\矩阵左除=赋值运算/矩阵右除==关系运算之相等.\向量左除~=关系运算之不等./向量右除关系运算之小于:向量生成或子阵提取=关系运算之小于等于()下标运算或参数定义关系运算之大于[]矩阵生成=关系运算之大于等于{}&逻辑运算之与xor逻辑运算之异成逻辑函数all测试向量中所用元素是否为真is*(一类函数)检测向量状态.其中*表示一个确定的函数(isinf)any测试向量中是否有真元素exist检验变量或文件是否定义logical将数字量转化为逻辑量find查找非零元素的下标语言结构与调试编程语言builtin执行Matlab内建的函数global定义全局变量eval执Matlab语句构成的字符串nargchk函数输入输出参数个数检验feval执行字符串指定的文件scriptMatlab语句及文件信息functionMatlab函数定义关键词控制流程break中断循环执行的语句if条件转移语句case与switch结合实现多路转移otherwise多路转移中的缺省执行部分else与if一起使用的转移语句return返回调用函数elseif与if一起使用的转移语句switch与case结合实现多路转移end结束控制语句块warning显示警告信息error显示错误信息while循环语句for循环语句交互输入input请求输入menu菜单生成keyboard启动键盘管理pause暂停执行面向对象编程class生成对象isa判断对象是否属于某一类double转换成双精度型superiorto建立类的层次关系inferiorto建立类的层次关系unit8转换成8字节的无符号整数inline建立一个内嵌对象调试函数dbclear清除调试断点dbstatus列出所有断点情况dbcont调试继续执行sbtype列出带命令行标号的.M文件dbquit退出调试模式dbup改变局部工作空间内容dbstack列出函数调用关系基本矩阵eye产生单位阵rand产生随机分布矩阵linspace构造线性分布的向量randn产生正态分布矩阵zeros产生零矩阵ones产生元素全部为1的矩阵:产生向量特殊向量与常量ans缺省的计算结果变量non非数值常量常由0/0或Inf/Inf获得computer运行Matlab的机器类型nargin函数中参数输入个数eps精度容许误差(无穷小)nargout函数中输出变量个数flops浮点运算计数realmax最大浮点数值inf无穷大realmin最小浮点数值inputname输入参数名varargin函数中输入的可选参数cat向量连接reshape改变矩阵行列个数diag建立对角矩阵或获取对角向量rot90将矩阵旋转90度fliplr按左右方向翻转矩阵元素tril取矩阵的下三角部分triu取矩阵的上三角部分repmat复制并排列矩阵函数复数函数abs绝对值函数imag求虚部函数angle角相位函数real求实部函数conj共轭复数函数数值处理fix沿零方向取整round舍入取整floor沿-∞方向取整rem求除法的余数ceil沿+∞方向取整sign符号函数其他特殊数学函数airyairy函数erfinv逆误差函数expint指数积分函数gammainc非完全gamma函数gammalngamma对数函数betabeta函数gcd最大公约数lcm最小公倍数betalnbeta对数函数ellipke完全椭圆积分pow2基2标量浮点数erf误差函数rat有理逼近rats有理输出坐标转换cart2pol笛卡儿坐标到极坐标转换pol2cart极坐标到笛卡儿坐标转换cart2sph笛卡儿坐标到球面坐标换sph2cart球面坐标到笛卡儿坐标转换矩阵函数cond求矩阵的条件数rcondLINPACK倒数条件估计det求矩阵的行列式rref矩阵的行阶梯型实现norm求矩阵的范数rrefmovie消元法解方程演示null右零空间subspace子空间orth正交空间trace矩阵的迹rank求矩阵的秩线性方程cholCholesky分解pinv求伪逆矩阵inv矩阵求逆qr矩阵的QR分解lscov最小二乘方差lu矩阵的LU三角分解qrinsertQR分解中插入一行特征值与奇异值banlance改进特征值精度的均衡换qzQZ算法求矩阵特征值cdf2rdf复块对角阵到实块对角换rdf2cdf实块对角阵到复块对角阵换eig求矩阵的特征值和特征向量schurSchur分解poly求矩阵的特征多项式矩阵函数expm矩阵指数函数sqrtm矩阵平方根数据分析与Fourier变换函数cumprod向量累积prod对向量中各元素求积cumsum向量累加max求向量中最大元素min求向量中最小元素std求向量中各元素标准差mean求向量中各元素均值sum对向量中各元素求和median求向量中中间元素trapz梯形法求数值积分微分计算del2离散Laplace变换gradient梯度计算diff差分于近视微分滤波与卷积Conv卷给与多项式乘法filter一维数字滤波conv2二维卷积filter2二维数字滤波Deconv因式分解与多项式乘法方差处理corrcoef相关系数计算Fourier变换abs绝对值函数angle相角函数ifft离散Fourier逆变换cplxpair依共轭复数对重新排序ifft2二维离散Fourier逆变换fft离散Fourier变换unwrap相角矫正fft2二维离散Fourier变换1.3MATLAB基本xy平面绘图命令由于此次课程设计主要要用到xy平面绘图命令。因此下面通过几个例子着重介绍MATLAB基本xy平面以及xyz空间的各项绘图命令,拓展包含一维曲线及二维曲面的绘制、列印及存档。plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。下例可画出一条正弦曲线如图1.1所示。closeall;x=linspace(0,2*pi,100);%100个点的x座标y=sin(x);%对应的y座标plot(x,y);图1.1若要画出多条曲线,只需将座标对依次放入plot函数即可:plot(x,sin(x),x,cos(x));如图1,2所示。图1.2若要改变颜色,在座标对後面加上相关字串即可:plot(x,sin(x),'c',x,cos(x),'g');如图1.3所示。图1.3若要同时改变颜色及图线型态(Linestyle),也是在座标对後面加上相关字即可:plot(x,sin(x),'co',x,cos(x),'g*');如图1.4所示。图1.4小整理:plot绘图函数的叁数字元颜色字元图线型态y黄色.点k黑色o圆w白色xxb蓝色++g绿色**r红色-实线c亮青色:点线m锰紫色-.点虚线--虚线。图形完成後,我们可用axis([xmin,x