MATLAB经典基础教程2_第1页
MATLAB经典基础教程2_第2页
MATLAB经典基础教程2_第3页
MATLAB经典基础教程2_第4页
MATLAB经典基础教程2_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章MATLAB数值计算(Mathematics)第2章MATLAB数值计算

2.1变量和数据

2.2矩阵和数组

2.3稀疏矩阵

2.4多项式

2.5元胞数组和结构数组

2.6数据分析

2.1变量和数据

2.1.1数据类型

MATLAB7.3定义了15种根本的数据类型,包括整型、浮点型、字符型和逻辑型等。2.1.2数据1.数值的表达方式数值采用十进制表示,可以用带小数点的形式直接表示,也可以用科学计数法,数值的表示范围是10-309~10309。例如:-2、5.67、2.56e-56(表示2.56×10-56)、4.68e204(表示4.68×10204)2.矩阵和数组的概念标量〔Scalar〕:是指1×1的矩阵,即只含一个数的矩阵。向量〔Vector〕:是指1×n或n×1的矩阵,即只有一行或者一列的矩阵。矩阵〔Matrix〕:是一个矩形的数组,即二维数组,其中向量和标量都是矩阵的特例,0×0矩阵为空矩阵([])。数组〔Array〕:是指n维的数组,为矩阵的延伸,其中矩阵和向量都是数组的特例。3.复数〔Complex〕复数由实部和虚部组成,MATLAB用特殊变量“i”和“j”表示虚数的单位。 z=a+b*i或z=a+b*j z=a+bi或z=a+bj(当b为常量时) z=r*exp(i*theta)得出一个复数的实部、虚部、幅值和相角。 a=real(z) %计算实部 b=imag(z) %计算虚部 r=abs(z) %计算幅值 t=angle(z) %计算相角2.1.3变量(Variables)1.变量的命名规那么变量名区分字母的大小写。变量名不能超过63个字符,第63个字符后的字符被忽略。变量名必须以字母开头,变量名的组成可以是任意字母、数字或者下划线,但不能含有空格和标点符号(如,。%等)。关键字(如if、while等)不能作为变量名。2.特殊变量ans运算结果的默认变量名pi圆周率πi或ji=j=inf无穷大,如1/0NaN或nan非数,如0/0、∞/∞、0×∞eps计算机的最小数2.2矩阵和数组

矩阵输入

(1)矩阵元素应用方括号([])括住;(2)每行内的元素间用逗号或空格隔开;(3)行与行之间用分号或回车键隔开;(4)元素可以是数值或表达式。矩阵表示应遵循以下根本常规:1.通过显式元素列表输入矩阵例如:>>c=[12;34;53*2] %[]表示构成矩阵,分号分隔行,空格分隔元素2.通过语句生成矩阵(1)使用from:step:to方式生成向量from、step和to分别表示开始值、步长和结束值。当step省略时那么默认为step=1。(2)使用linspace和logspace函数 linspace(a,b,n)a、b、n分别表示开始值、结束值和元素个数,n如果省略那么默认值为100。 logspace(a,b,n)a、b、n分别表示开始值10a、结束值10b和数据个数,n,如果省略那么默认值为50。3.由矩阵生成函数产生特殊矩阵zeros(m,n)产生m×n的全0矩阵ones(m,n)产生m×n的全1矩阵rand(m,n)产生均匀分布的随机矩阵,元素取值范围0.0~1.0。randn(m,n)产生正态分布的随机矩阵magic(N)产生N阶魔方矩阵(矩阵的行、列和对角线上元素的和相等)eye(m,n)产生m×n的单位矩阵1.矩阵的下标(Subscript)(1)全下标方式一个m×n的a矩阵的第i行第j列的元素表示为a(i,j)。(2)单下标方式以m×n的矩阵a为例,假设元素a(i,j)那么对应的“单下标”为s=(j-1)×m+i。2.2.2矩阵元素a(1,2)a(4)a(2,3)a(8)2.子矩阵块的产生(Multipleelements)子矩阵是从对应矩阵中取出一局部元素构成的。子矩阵也可以利用逻辑矩阵〔logicalmatrix〕来标识。a([12],[23])a([45;78])a(:,3)a(1:3,end)a(:,end)a(7:9)a(7:end)3.矩阵的赋值矩阵的赋值有:全下标方式、单下标方式和全元素方式。4.矩阵元素的删除

可以对矩阵的单个元素、子矩阵块和所有元素赋值为空矩阵进行删除操作,就是简单地将其赋值为空矩阵(用[]表示)。EX:a(:,3)=[] %删除一列元素a(1)=[] %删除一个元素,矩阵变为向量a=[] %删除所有元素为空矩阵

5.生成大矩阵(ConcatenatingMatrices)可以通过方括号“[]”实现将小矩阵生成一个较大的矩阵。

例:[a;a]与[a,a]的区别6.矩阵的翻转可以通过矩阵翻转函数对矩阵进行翻转。2.2.3字符串(CharacterArrays)一个字符串由多个字符组成,用单引号(’’)来界定。字符串是按行向量进行存储的。

1.字符串占用的字节每一个字符会占用两个字节。>>str2='Ilike''MATLAB''' %重复单引号来输入含有单引号的字符串2.字符串函数length:用来计算字符串的长度。double:用来查看字符串的ASCII码储存内容。char:用来将ASCII码转换成字符串形式。class或ischar:用来判断某一个变量是否为字符串。3.使用一个变量来储存多个字符串(1)多个字符串组成一个新的行向量将多个字符串变量直接用“,”连接。(2)使用二维字符数组每个字符串放在一行构成二维字符。(3)使用str2mat、strvcat和char函数,总是按最长的设置,缺乏的末尾用空格补齐。例如:>>str6=str2mat(str1,str2,str3)5.执行字符串使用eval命令直接“执行”某一字符串。EX:>>str9='a=2*5'>>eval(str9) %执行字符串a=106.显示字符串直接使用disp命令显示字符串。>>disp('请输入2*2的矩阵a')矩阵和数组运算1.矩阵运算的函数det(X):计算方阵行列式rank(X):求矩阵的秩。inv(X):求矩阵的逆阵。inv(X)=X-1[v,d]=eig(X):计算矩阵特征值和特征向量diag(X):产生X矩阵的对角阵2.矩阵和数组的算术运算(1)矩阵和数组的加(addition)、减运算(subtraction)矩阵加、减运算表达式分别为“A+B”、“A-B”。(2)矩阵和数组的乘法运算(muliplication)矩阵的乘法运算表达式为“A*B”

。矩阵A的列数必须等于矩阵B的行数,除非其中有一个是标量。数组的乘法运算表达式为“A.*B”,表示数组A和B中的对应元素相乘。A和B数组必须大小相同,除非其中有一个是标量。(3)矩阵和数组的除法(division)矩阵的除法运算表达式有两种:“A\B”和“A/B”,运算符为“\”和“/”分别表示左除和右除。X=A/B是X*A=B的解,A/B=A*B-1。X=A\B是方程A*X=B的解,A\B=A-1*B。数组的除法运算表达式有两种:“A.\B”和“A./B”,表示数组相应元素左除和右除。A和B数组必须大小相同,除非其中有一个是标量。【例2.12】方程组,用矩阵除法来解线性方程组。将该方程变换成AX=B的形式。A=[2-13;31-5;4-11]B=[5;5;9]X=A\B>>X=A\BX=2-10(4)矩阵和数组的乘方(power)矩阵乘方的运算表达式为“A^B”,其中A可以是矩阵或标量。数组乘方的运算表达式“A.^B”。3.矩阵和数组的转置(transpose)矩阵的转置运算表示为A’如果矩阵A是复数矩阵,那么为共轭转置。数组的转置运算表示为A.’如果数组A是复数数组,那么不是共轭转置。4.矩阵和数组的数学函数MATLAB中exp、sqrt、sin、cos等数学函数可以直接使用在数组上,这些运算是分别对数组的每个元素进行运算。expm、sqrtm、logm等数学函数用于矩阵运算。比较:round、fix、floor、ceil比较:sqrt、sqrtm5.关系操作和逻辑操作(1)关系运算〔relationaloperators)关系操作符有:<、<=、>、>=、==(等于)、~=(不等于)。关系运算规那么:如果两个标量,那么结果为真(1)或假(0)。如果比较的两个数组变量,那么必须大小相同,数组的元素为0或1。如果比较一个数组和一个标量,那么把数组的每个元素分别与标量比较。<、<=和>、>=仅对变量的实部进行比较,而==和~=那么同时对实部和虚部进行比较。(2)逻辑运算(LogicalOperators)逻辑操作符有:&(and)、|(or)、~(not)和xor、&&(先决与)、||(先决或)

。【例2.16】数组的关系和逻辑运算。

实现半波整流。6.运算符优先级在MATLAB中各种运算符的优先级如下:'(矩阵转置)、^(矩阵幂)和.'(数组转置)、.^(数组幂)

~(逻辑非)

*(乘)、/(左除)、\(右除)和.*(点乘)、./(点左除)、.\(点右除)

+、-(加减)

:(冒号)

<、<=、>、>=、~=

&(逻辑与)

|(逻辑或)

&&(先决与)

||(先决或)多维数组

〔MultidementionalArrays〕三维数组用三个下标表示,在二维数组的根底上增加了一维称为页,三维数组可以看成“长方体”。三维数组的元素存放遵循“单下标”的编号规那么:第一页第一列下接该页的第二列,下面再接第三列,依此类推;第一页的最后列下面接第二页第一列。多维数组的创立(1)通过“全下标”元素赋值方式创立(2)由函数ones、zeros、rand和randn直接创立(3)利用函数生成数组将一系列数组沿着特定的维连接成一个多维数组。cat(维,p1,p2,……)按指定行列数放置模块数组生成多维数组repmat(p)。在总元素的数目不变的前提下重新确定数组的行列数来重组数组。reshape(p)2.4多项式(polynomial)多项式按降幂排列为:p(x)=anxn+an-1xn-1+…+a1x+a0用行向量表示为:p=[anan-1…a1a0]即把多项式的各项系数按降幂次序排放成行向量,如果多项式中缺某幂次项,那么用零代替该幂次项的系数。例如:x3+21x2+20x>>p1=[121200]多项式的求值、求根和局部分式1.多项式求值函数polyval(p,s)可以用来计算多项式在给定变量时的值。

2.多项式求根Roots:用来计算多项式的根。Poly:根据多项式的根来计算多项式的系数。3.特征多项式函数poly计算矩阵的特征多项式的系数。特征值用roots函数来计算。4.局部分式展开用residue函数来实现将分式表达式进行多项式的局部分式展开。[r,p,k]=residue(b,a)[b,a]=residue(r,p,k)例如:展开多项式的乘除和微积分运算1.多项式的乘法和除法多项式的乘法和除法运算分别使用函数conv和deconv来实现,这两个函数也可以对应于卷积和解卷运算。p=conv(pl,p2)[q,r]=deconv(v,u)例如,2.多项式的微分和积分多项式的微分由polyder函数实现。可以用[p./[length(p):-1:1],k]的方法来完成积分,k为常数。多项式拟合和插值1.多项式拟合拟合的准那么是最小二乘法,找出使最小的f(x)。 p=polyfit(x,y,n)一阶拟合曲线二阶拟合曲线三阶拟合曲线2.插值运算〔1〕一维插值一维插值是指对一个自变量的插值,interp1函数是用来进行一维插值的。yi=interp1(x,y,xi,’method’)〔2〕二维插值二维插值是指对两个自变量的插值。 zi=interp2(x,y,z,xi,yi,’method’)2.5元胞数组和结构数组

元胞数组(CellArray)元胞数组中的根本组成是元胞,每一个元胞可以看成是一个单元(Cell),用来存放各种不同类型的数据,如矩阵、多维数组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论