《基本矩阵运算》PPT课件.ppt_第1页
《基本矩阵运算》PPT课件.ppt_第2页
《基本矩阵运算》PPT课件.ppt_第3页
《基本矩阵运算》PPT课件.ppt_第4页
《基本矩阵运算》PPT课件.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

Matlab程序设计教程,1,第二章 基本矩阵运算,1 简单矩阵输入 命令行简单键盘输入 用于很少数据输入 矩阵的方向:, ; NaN Inf 文件形式输入:importdata(.xls文件,.txt文件) 可以用来读入试验数据 海量的数据输入 load数据 文本文件:全部是数据 mat文件:matlab自有的数据格式,Matlab程序设计教程,2,2 语句生成矩阵,线性等间距格式矩阵,使用from:step:to linspace命令 a=linspace(1,10,5); 矩阵连接 c=a b; zeros ones eye randn ,Matlab程序设计教程,3,3 导入特殊的文件格式,导入向导:import wizard 可以导入的文件格式: 文本文件: .txt .dat 图片文件: .gif .bmp .jpg .avi 声音:.wav .au 电子表格:.csv .xls .wk1 更加复杂的自定义数据需要编程导入:excel文件读取函数(xlswrite,xlsread,速度较慢),Matlab程序设计教程,4,读入特殊格式文件:文本类型,Matlab程序设计教程,5,读入特殊格式文件:二进格式,Matlab程序设计教程,6,4 矩阵运算,矩阵的转置 用符号来表示和实现 非共轭转置 . 矩阵的四则运算 +-*/ 点乘:.* 右除:./ 左除:. 矩阵的乘方 矩阵乘方 .元素对元素的乘方 矩阵的范数 norm 1-范数 2-范数 无穷范数 条件数 cond,Matlab程序设计教程,7,5 矩阵的初等函数,MATLAB中exp、sprt、sin、cos等命令可以直接使用在矩阵上,这种运算只是定义在矩阵的单个元素上,即分别对矩阵的每个元素进行运算。MATLAB中也提供了基本的三角函数。,Matlab程序设计教程,8,5 矩阵的初等函数,Matlab程序设计教程,9,指数和对数函数,exp 指数函数 exp函数是面向阵列元素的操作。 例如:X=1 2;-1 -2; Y=exp(x) log 自然对数 例如:X=2 1; -1 -2; Y=log(X),Matlab程序设计教程,10,复数函数,abs 绝对值和复数模 angle 相角。P=angle(Z)可得复数Z的 相角。利用Z=R.*exp(i*theta)可恢 复复数Z。 conj 复共轭。求复数的复共轭。 imag 求复数的虚部。 real 求复数实部。,Matlab程序设计教程,11,取整和求余函数,fix 朝零方向取整。 根据接近于0的原则对A中的元素取整。 例如: b1=fix(0.99) b2=fix(1.01) floor 朝负无穷大方向取整。 根据接近于负无穷大的原则,对A中的元素取整。 例如:b3=floor(-0.5) b4=floor(0.5),Matlab程序设计教程,12,取整和求余函数,ceil 朝正无穷大方向取整。 根据接近于正无穷大的原则,对A中的元素取整。 例如:b5= ceil (-0.5) b6= ceil (0.6) round 朝最近整数取整.(四舍五入)根据四舍五入的原则对A中的元素取整。 例如: b7=round(-0.5) b8=round(0.4),Matlab程序设计教程,13,取整和求余函数,mod模数(即有符号数的除后余数)。 例如: M=mod(16, 3) rem除后余数。 例如:rem(11, 4) sign符号函数。 Y=sign(X)可得到X的符号阵列。,Matlab程序设计教程,14,6 矩阵函数,方阵的行列式 d = det(X) A=1 2 3;4 5 6;7 8 9 A = 1 2 3 4 5 6 7 8 9 D=det(A),Matlab程序设计教程,15,矩阵函数,矩阵的逆 inv A=2 1 -1;2 1 2;1 -1 1; format rat %用有理格式输出 D=inv(A) D = 1/3 0 1/3 0 1/3 -2/3 -1/3 1/3 0,Matlab程序设计教程,16,矩阵函数,矩阵的迹 trace b=trace (A) 返回矩阵A的迹,即A的对角线元素之和。 矩阵的条件数 c = cond(X) 求X的2-范数的条件数,即X的最大奇异值和最小奇异值的商。 c = cond(X,p) 求p-范数的条件数,p的值可以是1、2、inf或者fro。 条件数的定义为:,Matlab程序设计教程,17,矩阵函数,矩阵的范数: n = norm(A) A为矩阵,求欧几里德范数,等于A的最大奇异值。 n = norm(A,1) 求A的列范数,等于A的列向量的1-范数的最大值。 n = norm(A,2) 求A的欧几里德范数,和norm(A)相同。 n = norm(A,inf) 求行范数,等于A的行向量的1-范数的最大值,Matlab程序设计教程,18,7 关系和逻辑运算,1 关系操作符 MATLAB常用的关系操作符有:(大于)、=(大于或等于)、 = =(等于)、 !=(不等于)。 MATLAB的关系操作符可以用来比较两个大小相同的数组,或者比较一个数组和一个标量。在与标量比较时,结果和数组大小一样。 a=1:9; b=a4 b = 0 0 0 0 1 1 1 1 1 c=a(a4) c = 5 6 7 8 9,Matlab程序设计教程,19,7 逻辑操作符,逻辑操作符定义了一种与或非的关系表达式。MATLAB的逻辑操作符有&(与)、|(或)、(非)。例如: c=(a4) c = 1 1 1 1 0 0 0 0 0 c=(a4)&(a7) c = 0 0 0 0 1 1 0 0 0,Matlab程序设计教程,20,7 逻辑操作函数,Matlab程序设计教程,21,all,all 测试矩阵所有元素是否为非零。 B=all(A)用于测试矩阵A的所有元素是否非零或是否为逻辑真(1)。 B=all(A, dim)可测试沿着指定维dim上的逻辑条件。,Matlab程序设计教程,22,all,例如: A=0.53 0.47 0.81 0.3 0.12 0.91; B=A0.5 B=1 0 1 0 0 1 if all(A0.5) do something1 else do something2 end,Matlab程序设计教程,23,any,B=any(A)可测试沿着阵列的各个维中的任意元素是否有非零值或逻辑真(1) B=any(A,dim) 可测试指定维dim的逻辑条件。,Matlab程序设计教程,24,any,例如: A=0.53 0.47 0.81 0.3 0.12 0.91 if any(a0.5) do something1 else do something2 end,Matlab程序设计教程,25,8 矩阵操作,8.1 矩阵下标 MATLAB通过确认下标,可以对矩阵进行插入子块、提取子块和重排子块的操作。 为了提取矩阵a的第n行、第m列的元素值,使用a(n,m)可以得到。同样,将矩阵a的第n行、第m列的元素值赋为r,使用a(n,m)=r这样的命令。需要注意的是,如果在提取矩阵值时,行或列的值大于矩阵的大小,则出错;而在矩阵赋值时,如果行或者列超出矩阵的大小,则MATLAB自动扩充矩阵的规模,使得可以赋值,扩充部分以零填充。,Matlab程序设计教程,26,8.1 矩阵下标,利用矩阵下标,MATLAB还提供了子矩阵功能。同样是上面的a(n,m),如果n和m是向量,而不是标量,则将获得指定矩阵的子块. 同样,矩阵的子块还可以被赋值。如果在取子块时,n或m是“:”,则返回指定的所有行或列。 如果在矩阵子块赋值为空矩阵(用表示),则相当于消除相应的矩阵子块. 矩阵的序号编址:按列计数。,Matlab程序设计教程,27,8.2 矩阵大小,在MATLAB命令行中,使用whos命令可以察看到所有变量的大小。 为了获得矩阵或者向量的大小,MATLAB还提供了两个有用的函数size和length。 size按照下面的形式使用:m,n=size(a,x)。一般的,函数的输入参量x不用,此时,当只有一个输出变量时,size返回一个行向量,第一个数为行数,第二个数为列数;如果有两个输出变量,第一个返回量为行数,第二个返回数为列数。当使用x时,x=1返回行数,x=2返回列数,这时只有一个返回值。 length返回行数或者列数的最大值,即length(a)=max(size(a)。,Matlab程序设计教程,28,8.3 矩阵操作函数,MATLAB提供了一组执行矩阵操作的函数,例如flipud(a)使得矩阵上下翻转,fliplr(a)使得矩阵左右翻转,rot90(a)使得矩阵逆时针翻转90度等等。,Matlab程序设计教程,29,8.4逻辑矩阵,逻辑矩阵是大小和对应矩阵相同,而元素为0或者1的数组。逻辑数组一般由关系算子创建。可以使用逻辑矩阵来取得矩阵的部分元素值, a(a3)得到矩阵a中所有大于3的值。使用逻辑矩阵也可以对矩阵的部分赋值。,Matlab程序设计教程,30,8.5 矩阵查找和排序,子矩阵的查找使用find命令完成,它返回关系表达式为真的下标。例如: a=10:20; find(a15) ans = 7 8 9 10 11 矩阵的排序使用sort函数,它将矩阵按照升序排列。,Matlab程序设计教程,31,9 矩阵分解,特征值分解 V,D=eig(A) 例: a = 9 8 6 8 v,d=eig(a) v = 0.7787 -0.7320 0.6274 0.6813 d = 15.4462 0 0 1.5538,求矩阵A的特征向量V及特征值D,满足A*V=V*D。其中D的对角线元素为特征值,V的列为对应的特征向量。如果D=eig(A)则只返回特征值。,可以验证:A*V=V*D,Matlab程序设计教程,32,矩阵分解,奇异值分解 U,S,V=svd(A) 例:a = 9 8 6 8 可以验证: uu=I vv=I usv=a,求矩阵A的奇异值及分解矩阵,满足USV=A,其中U、V矩阵为正交矩阵(UU=I),S矩阵为对角矩阵,它的对角元素即A矩阵的奇异值。,u,s,v=svd(a) u = 0.7705 -0.6375 0.6375 0.7705 s = 15.5765 0 0 1.5408 v = 0.6907 -0.7231 0.7231 0.6907,Matlab程序设计教程,33,矩阵分解,正交分解 Q,R=qr(A) 例: a = 9 8 6 8 q,r=qr(a

温馨提示

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

评论

0/150

提交评论