《基本矩阵运算》PPT课件.ppt

上传人:牧羊曲112 文档编号:5487121 上传时间:2023-07-12 格式:PPT 页数:34 大小:220KB
返回 下载 相关 举报
《基本矩阵运算》PPT课件.ppt_第1页
第1页 / 共34页
《基本矩阵运算》PPT课件.ppt_第2页
第2页 / 共34页
《基本矩阵运算》PPT课件.ppt_第3页
第3页 / 共34页
《基本矩阵运算》PPT课件.ppt_第4页
第4页 / 共34页
《基本矩阵运算》PPT课件.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《《基本矩阵运算》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《基本矩阵运算》PPT课件.ppt(34页珍藏版)》请在三一办公上搜索。

1、Matlab程序设计教程,1,第二章 基本矩阵运算,1 简单矩阵输入命令行简单键盘输入用于很少数据输入矩阵的方向:,;NaN Inf文件形式输入:importdata(.xls文件,.txt文件)可以用来读入试验数据海量的数据输入load数据文本文件:全部是数据mat文件:matlab自有的数据格式,Matlab程序设计教程,2,2 语句生成矩阵,线性等间距格式矩阵,使用from:step:tolinspace命令a=linspace(1,10,5);矩阵连接c=a b;zeros ones eye randn,Matlab程序设计教程,3,3 导入特殊的文件格式,导入向导:import wi

2、zard可以导入的文件格式:文本文件:.txt.dat图片文件:.gif.bmp.jpg.avi声音:.wav.au电子表格:.csv.xls.wk1更加复杂的自定义数据需要编程导入:excel文件读取函数(xlswrite,xlsread,速度较慢),Matlab程序设计教程,4,读入特殊格式文件:文本类型,Matlab程序设计教程,5,读入特殊格式文件:二进格式,Matlab程序设计教程,6,4 矩阵运算,矩阵的转置用符号来表示和实现非共轭转置.矩阵的四则运算+-*/点乘:.*右除:./左除:.矩阵的乘方矩阵乘方.元素对元素的乘方矩阵的范数norm 1-范数 2-范数 无穷范数条件数 co

3、nd,Matlab程序设计教程,7,5 矩阵的初等函数,MATLAB中exp、sprt、sin、cos等命令可以直接使用在矩阵上,这种运算只是定义在矩阵的单个元素上,即分别对矩阵的每个元素进行运算。MATLAB中也提供了基本的三角函数。,Matlab程序设计教程,8,5 矩阵的初等函数,Matlab程序设计教程,9,指数和对数函数,exp 指数函数 exp函数是面向阵列元素的操作。例如:X=12;-1-2;Y=exp(x)log 自然对数例如:X=2 1;-1-2;Y=log(X),Matlab程序设计教程,10,复数函数,abs 绝对值和复数模 angle 相角。P=angle(Z)可得复数

4、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)

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 9A=1 2 3 4 5 6 7 8 9 D=det(A),Matlab程序设计教程,15,矩阵函数,矩阵的逆 inv

6、 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,矩阵函数,矩阵的迹 traceb=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(

7、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=a4b=0 0 0 0 1 1 1 1 1c=a(a4)c=5 6 7 8 9,Matlab程序设计教程,19,7 逻辑

8、操作符,逻辑操作符定义了一种与或非的关系表达式。MATLAB的逻辑操作符有&(与)、|(或)、(非)。例如:c=(a4)c=1 1 1 1 0 0 0 0 0c=(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

9、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.91if any(a0.5)do something1else do something2end,Matlab程序设计教程,25,8 矩阵操作,8.1 矩阵下标MATLAB通过确认下标,可以对矩阵进行

10、插入子块、提取子块和重排子块的操作。为了提取矩阵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是“:”,则

11、返回指定的所有行或列。如果在矩阵子块赋值为空矩阵(用表示),则相当于消除相应的矩阵子块.矩阵的序号编址:按列计数。,Matlab程序设计教程,27,8.2 矩阵大小,在MATLAB命令行中,使用whos命令可以察看到所有变量的大小。为了获得矩阵或者向量的大小,MATLAB还提供了两个有用的函数size和length。size按照下面的形式使用:m,n=size(a,x)。一般的,函数的输入参量x不用,此时,当只有一个输出变量时,size返回一个行向量,第一个数为行数,第二个数为列数;如果有两个输出变量,第一个返回量为行数,第二个返回数为列数。当使用x时,x=1返回行数,x=2返回列数,这时只有

12、一个返回值。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.

13、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 8v,d=eig(a)v=0.7787-0.7320 0.6274 0.6813d=15.4462 0 0 1.5538,求矩阵A的特征向量V及特征值D,满足A*V=V*D。其中D的对角线元素为特征值,V的列为对应的特征向量。如果D=eig(A)则只返回特征值。,可以验证:A*V=V*D,Matla

14、b程序设计教程,32,矩阵分解,奇异值分解U,S,V=svd(A)例:a=9 8 6 8可以验证:uu=Ivv=Iusv=a,求矩阵A的奇异值及分解矩阵,满足USV=A,其中U、V矩阵为正交矩阵(UU=I),S矩阵为对角矩阵,它的对角元素即A矩阵的奇异值。,u,s,v=svd(a)u=0.7705-0.6375 0.6375 0.7705s=15.5765 0 0 1.5408v=0.6907-0.7231 0.7231 0.6907,Matlab程序设计教程,33,矩阵分解,正交分解Q,R=qr(A)例:a=9 8 6 8q,r=qr(a)q=-0.8321-0.5547-0.5547 0.8321r=-10.8167-11.0940 0 2.2188,将矩阵A做正交化分解,使得Q*R=A,其中Q为正交矩阵(其范数为1,指令norm(Q)=1),R为对角化的上三角矩阵。,Matlab程序设计教程,34,矩阵分解,三角分解L,U=lu(A)将A做三角分解,使得A=L*U,其中L为下三角矩阵,U为上三角矩阵。例:a=1 2 3;4 5 6;7 8 9 l,u=lu(a),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号