MATLAB工具软件科学家和工程技术人员需要的研究工具一种演算纸式的科学工程计算语言MATLAB1.核心部分:几百个核心内部函数。2.大量可选的工具箱。MATLAB的两个主要部分MATLAB的基本组成MATLAB主程序MATLAB语言、工作环境、句柄图形、数学函数库和应用程序接口MATLAB的功能性工具箱如:Simulink:动态系统仿真MATLAB的学科性工具箱如:signalprocessingtoolbox信号处理工具箱例:用一个简单命令求解线性系统3x1+x2-x3=3.6x1+2x2+4x3=2.1-x1+4x2+5x3=-1.4线性系统求解:(Ax=b)线性系统求解:(Ax=b)输入指令:A=[31-1;124;-145];b=[3.6;2.1;-1.4];x=A\b得到结果:x=1.4818-0.46060.38480123456-1-0.8-0.6-0.4-0.200.20.40.60.81x=linspace(0,6)y1=sin(2*x),y2=sin(x.^2),y3=(sin(x)).^2;plot(x,y1,x,y2,x,y3)例、用简短命令计算并绘制在0x6范围内的sin(2x)、sinx2、sin2x。常用专业性工具箱:ControlSystem最基本的控制工具箱SignalProcessing信号处理工具箱ImageProcessing图像处理工具箱Communication通讯工具箱Higher-OrderSpectralAnalysis高阶谱分析Spline样条分析工具箱Statistics统计分析工具箱…MATLAB的部分通用命令clear:删除内存中的变量。clc:删除工作窗口的内容。clf:删除图形窗口的内容。Matlab联机帮助命令•help功能提供matlab大部分主题的在线帮助信息help显示help主题一览表helpplotxyz显示有关三维做图指令帮助信息虽然help可以随时提供帮助,但必须知道准确的函数名称。当不能确定函数名称时,help就无能为力了。•Lookfor函数—它可提供通过一般的关键词,搜索出一组与之相关的命令lookforfourier寻找含有傅立叶变换的相关指令变量查询函数who与whos•作用都是列出在matlab工作空间中已经驻留的变量名清单•不同的是whos在给出驻留变量的同时,还给出他们的维数及性质Matlab的演示功能•demo在线演示MATLAB的数值运算数据类型数据运算:双精度型(Double)支持的数据类型:数值型、字符型、单元型和结构型复数的表示:i,j表示虚数单位z=a+b*i或z=a+b*j当b是一个数字时,可以表示为z=a+bi或z=a+bjMATLAB的矩阵和数组运算matlab具有出色的矩阵运算能力,占据世界上数值计算软件的重要地位矩阵的创建:1.创建矩阵的方法直接输入法规则:矩阵元素必须用[]括住矩阵元素必须用逗号或空格分隔在[]内矩阵的行与行之间必须用分号分隔矩阵元素可以是任何matlab表达式,可以是实数,也可以是复数,复数可用特殊函数I,j输入a=[123;456]x=[2pi/2;sqrt(3)3+5i]矩阵元素:注意:只要是赋过值的变量,不管是否在屏幕上显示过,都存储在工作空间中,以后可随时显示或调用。变量名尽可能不要重复,否则会覆盖2.用matlab函数创建矩阵空阵[]—matlab允许输入空阵,当一项操作无结果时,返回空阵。rand——随机矩阵eye——单位矩阵zeros——全部元素都为0的矩阵ones——全部元素都为1的矩阵向量的生成:利用冒号生成向量x=i:j如果IJ,生成以1为增量的向量如果IJ,生成X空向量x=i:j:kj是递增步长矩阵的标识和引用矩阵的子矩阵通过向量、标量的标识来引用和赋值。1.向量标识A(u,v)2.“0~1”向量标识A(L)例:找出4阶魔方阵中大于10的元素。A=16231351110897612414151规则:所有字符串都用单引号括起来;字符串中的每个字符都是字符串变量中的一个元素;字符串中的字符以ASCII码形式存储并区分大小字符串数组字符串数组的建立。例:a=‘Thisisatest.’A=‘中国成都’B=‘China‘’中國‘’’字符串数组的建立有效字符串连成长字符串多行字符串数组的直接创建利用字符串操作函数创建字符串数组利用转换函数建立字符串数组字符串数组的元素标识符号的作用:“,”逗号的作用逗号可作为指令间的分隔符,matlab允许多条语句在同一行出现。把matlab工作空间中一些有用的数据长久保存下来的方法是生成mat数据文件。save——将工作空间中所有的变量存到matlab.mat文件中。数据的保存与获取默认文件名savefilename——将工作空间中所有的变量存到filename.mat文件中。savefilenameab——将工作空间中a和b变量存到filename.mat文件中。load——loadfilename——loadfilenameab——mat文件是标准的二进制文件,还可以ASCII码形式保存。即可恢复保存过的所有变量1.矩阵加、减(+,-)运算规则:相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。第二章矩阵运算及应用2.矩阵乘()运算规则:A矩阵的列数必须等于B矩阵的行数标量可与任何矩阵相乘。a=[123;456;780];b=[1;2;3];c=a*bc=143223矩阵除的运算在线性代数中没有,有矩阵逆的运算,在matlab中有两种矩阵除运算。矩阵左除:A\B定义为:X=A\BAX=B矩阵右除:B/A定义为:X=B/AXA=B(B/A)’=(A’\B’)a^p——a自乘p次幂方阵整数3.矩阵乘方当p为正整数时,表示方阵自乘p次;当p为负整数时,表示方阵自乘p次后的逆;当p为零时,为方阵同维的单位阵。a=[1,2,3;4,5,6;7,8,9];a^2ans=303642668196102126150inv——矩阵求逆det——行列式的值eig——矩阵的特征值diag——对角矩阵’——矩阵转置sqrt——矩阵开方4.矩阵的其它运算数组运算指元素对元素的算术运算,与通常意义上的由符号表示的线性代数矩阵运算不同1.数组加减(.+,.-)a.+ba.-b数组运算对应元素相加减(与矩阵加减等效)2.数组乘除(,./,.\)ab——a,b两数组必须有相同的行和列两数组相应元素相乘。a=[123;456;789];b=[246;135;7910];a.*bans=281841530497290a=[123;456;789];b=[246;135;7910];a*bans=253746558510985133172a./b=b.\aa.\b=b./aa./b=b.\a—都是a的元素被b的对应元素除a.\b=b./a—都是b的元素被a的对应元素除例:a=[123];b=[456];c1=a.\b;c2=b./ac1=4.00002.50002.0000c2=4.00002.50002.0000——给出a,b对应元素间的商.例:a=[123];b=[456];z=a.^2z=1.004.009.00z=a.^bz=1.0032.00729.003.数组乘方(.^)—元素对元素的幂关系操作和逻辑操作关系操作符:、=、、=、==(等于)、~=(不等于)关系运算规则:两个变量都是标量,则结果为真(1)或假(0)。两个变量都是数组,则必须大小相同,结果也是同样大小的数组,数组的元素为0或1。关系操作一个数组和一个标量,则把数组的每个元素分别与标量比较,结果为与数组大小相同的数组,数组的元素为0或1。、=和、=,仅对参加比较变量的实部进行比较,==和~=,则同时对实部和虚部进行比较。逻辑操作逻辑操作符:&(与)、|(或)、~(非)和xor(异或)。aba&ba|b~axor(a,b)000010010111100101111100运算符优先级'(矩阵转置)、^(矩阵幂)和.'(数组转置)、.^(数组幂)~(逻辑非)*(乘)、/(左除)、\(右除)和.*(点乘)、./(点左除)、.\(点右除)+、-(加减):(冒号)、=、、=、~=&(逻辑与)多项式的表示和创建在Matlab中,任意的多项式都是用一个行向量表示,将多项式的系数按降幂排列存放在行向量中。多项式p(x)=a0xn+a1xn-1+…+an-1x+an对应的行向量为:P=[a0a1…an]。1.直接创建多项式例:p(x)=2x4+5x3-8x+3[250-83]通过根创建多项式poly其调用格式如下:P=poly(A)如A为向量,则P是多项式的系数行向量,该多项式的根A。注意:如A为n×n的矩阵,则P是一个长度为n+1的行向量,它是A的特征多项式的系数;例:A=[6-86;100;020];p=poly(A),roots(p),D=eig(A)求根:roots调用方式:roots(A)注意:求根的精度问题:例:y=(x-1)6=x6-x5+15x4-20x3+15x2-6x+1a=[1-615-2015-61]a=1-615-2015-61roots(a)ans=1.0042+0.0025i1.0042-0.0025i1.0000+0.0049i1.0000-0.0049i0.9958+0.0024i0.9958-0.0024i多项式的基本运算1.多项式的乘法conv多项式的乘法本质上是多项式系数向量的卷积运算。卷积的定义为Kc(k)=a(i)b(k+1-i)i=1在Matlab,完成此功能的命令是conv:C=conv(a,b)。例:求a=x3+3x2+2x1+1和b=4x3+3x2+9x1+10的乘积。a=[1321];b=[43910];c=conv(a,b)2.多项式的除法dconv多项式的除法的运算实质就是多项式系数的解卷积运算。向量a对向量c进行解卷积得到的商向量q和余向量r,满足:kc(k)-r(k)=a(i)q(k+1-i)i=1在Matlab,完成此功能的命令是dconv:[q,r]=dconv(c,a)其中:c=conv(a,q)+r例:a=[1321];c=[4152647512910];[q,r]=deconv(c,a)3.多项式的加减对多项式所对应的向量利用数组加减运算规则执行加减运算。注:多项式所对应的向量如果大小不相等,必须用0补齐。例:求a=x3+3x2+2x1+1和b=4x3+3x2+9x1+10的和与差。a=[1321];b=[43910];c=a+b,c1=a-b,4.多项式的求导polyder不仅可以计算单个多项式的导数,还可以计算两个多项式相乘和相除的导数。其调用方式如下:polyder(p):返回多项式系数向量p的导数;polyder(a,b):返回多项式a*b的导数;[q,d]=polyder(b,a):返回b/a的导数,用q/d表示。其中q是结果的分子多项式,d是结果的分母多项式。例:求a=x3+3x2+2x1+1和b=4x3+3x2+9x1+10的乘和商的导数。a=[1321];b=[43910];polyder(a,b)[q,d]=polyder(b,a)5.多项式的求值polyval在Matlab中,多项式求值有两种方式:按数组规则和按矩阵规则计算多项式值。y=polyval(p,x):按数组规则运算。用来计算多项式p在自变量x处的值,可以是数、向量和矩阵。如果x是向量或矩阵,则该命令将对x的每个元素计算p的值,结果大小和x的大小相同;y=polyvalm(p,x):按矩阵规则运算。自变量x是一方阵。