第二讲向量与矩阵运算精选文档.ppt
第二讲向量与矩阵运算第二讲向量与矩阵运算本讲稿第一页,共二十四页q 向量与矩阵的生成向量与矩阵的生成向量与矩阵运算向量与矩阵运算u 向量的生成向量的生成 直接输入直接输入:a=1,2,3,4 冒号运算符冒号运算符a=1:4 =a=1,2,3,4b=0:pi/3:pi =b=0,1.0472,2.0944,3.1416c=6:-2:0 =c=6,4,2,0例例:从矩阵中抽取行或列从矩阵中抽取行或列本讲稿第二页,共二十四页q 向量与矩阵的生成(续)向量与矩阵的生成(续)向量与矩阵运算向量与矩阵运算u 矩阵的生成矩阵的生成 直接输入直接输入:A=1,2,3;4,5,6;7,8,9 由向量生成由向量生成 由函数生成由函数生成 通过编写通过编写m文件生成文件生成例例:x=1,2,3;y=2,3,4;A=x,y,B=x;y例例:C=magic(3)本讲稿第三页,共二十四页常见矩阵生成函数常见矩阵生成函数zeros(m,n)生成一个 m 行 n 列的零矩阵,m=n 时可简写为 zeros(n)ones(m,n)生成一个 m 行 n 列的元素全为 1 的矩阵,m=n 时可写为 ones(n)eye(m,n)生成一个主对角线全为 1 的 m 行 n 列矩阵,m=n 时可简写为 eye(n),即为 n 维单位矩阵diag(X)若 X 是矩阵,则 diag(X)为 X 的主对角线向量若 X 是向量,diag(X)产生以 X 为主对角线的对角矩阵tril(A)提取一个矩阵的下三角部分triu(A)提取一个矩阵的上三角部分rand(m,n)产生 01 间均匀分布的随机矩阵 m=n 时简写为 rand(n)randn(m,n)产生均值为0,方差为1的标准正态分布随机矩阵m=n 时简写为 randn(n)本讲稿第四页,共二十四页矩阵操作矩阵操作q 提取矩阵的部分元素:提取矩阵的部分元素:冒号运算符冒号运算符u A(:)A的所有元素的所有元素u A(:,:)二维矩阵二维矩阵A的所有元素的所有元素u A(:,k)A的第的第 k 列,列,A(k,:)A的第的第 k 行行 u A(k:m)A的第的第 k 到第到第 m 个元素个元素u A(:,k:m)A的第的第 k 到第到第 m 列组成的子矩阵列组成的子矩阵A(:)与与 A(:,:)的区别的区别?如何获得由如何获得由 A 的第一、三行和第一、二列组成的子矩阵?的第一、三行和第一、二列组成的子矩阵?自己动手本讲稿第五页,共二十四页矩阵操作矩阵操作q 矩阵的旋转矩阵的旋转u fliplr(A)左右旋转左右旋转u flipud(A)上下旋转上下旋转u rot90(A)逆时针旋转逆时针旋转 90 度;度;rot90(A,k)逆时针旋转逆时针旋转 k90 度度例例:A=1 2 3;4 5 6 B=fliplr(A)C=flipud(A)D=rot90(A),E=rot90(A,-1)本讲稿第六页,共二十四页矩阵操作矩阵操作q 矩阵的转置与共轭转置矩阵的转置与共轭转置u 共轭转置共轭转置u .转置,矩阵元素不取共轭转置,矩阵元素不取共轭例例:A=1 2;2i 3i B=A C=A.点与单引号之间不能有空格!本讲稿第七页,共二十四页矩阵操作矩阵操作q 改变矩阵的形状:改变矩阵的形状:reshapereshape(A,m,n):将矩阵元素按将矩阵元素按 列方向列方向 进行重组进行重组重组后得到的新矩阵的元素个数必须与原矩阵元素个数相等!本讲稿第八页,共二十四页矩阵操作矩阵操作q 查看矩阵的大小:查看矩阵的大小:sizeu size(A)列出矩阵列出矩阵 A 的的行数和列数行数和列数u size(A,1)返回矩阵返回矩阵 A 的的行数行数u size(A,2)返回矩阵返回矩阵 A 的的列列数数例例:A=1 2 3;4 5 6 size(A)size(A,1)size(A,2)u length(x)返回向量返回向量 X 的的长度长度u length(A)等价于等价于 max(size(A)本讲稿第九页,共二十四页矩阵基本运算矩阵基本运算q 矩阵的加减矩阵的加减:对应分量进行运算对应分量进行运算要求参与加减运算的矩阵具有 相同的维数例例:A=1 2 3;4 5 6;B=3 2 1;6 5 4 C=A+B;D=A-B;q 矩阵的普通乘法矩阵的普通乘法要求参与运算的矩阵满足线性代数中矩阵相乘的原则例例:A=1 2 3;4 5 6;B=2 1;3 4;C=A*B本讲稿第十页,共二十四页矩阵基本运算矩阵基本运算q 矩阵的除法矩阵的除法:/、右除和左除右除和左除 若 A 可逆方阵,则AB A 的逆左乘的逆左乘 B =inv(A)*BB/A A 的逆右乘的逆右乘 B B*inv(A)X=AB A*X=BX=B/A X*A=B 通常,矩阵除法可以理解为 当当 A 和和 B 行数相等行数相等时即可进行时即可进行左除左除 当当 A 和和 B 列数相等列数相等时即可进行时即可进行右除右除本讲稿第十一页,共二十四页矩阵的乘方矩阵的乘方u A 是方阵,p 是正整数Ap 表示 A 的 p 次幂,即 p 个 A 相乘。u 若 A 是方阵,p 不是正整数 Ap 的计算涉及到的计算涉及到 A 的特征值分解,即若的特征值分解,即若 A=V*D*V-1 则 Ap=V*(D.p)/V本讲稿第十二页,共二十四页矩阵的乘方矩阵的乘方u 若 a 是标量,A 是方阵,且 V,D=eig(A),则 aA V*(aD)/Vu 若 A,P 均是矩阵,则 AP 无定义u 若 a 是标量,则本讲稿第十三页,共二十四页矩阵的矩阵的 Kronecker 乘积乘积q 矩阵矩阵 Kronecker 乘积的定义乘积的定义 设A是nm矩阵,B是pq矩阵,则A与B的kronecker乘积为:q Kronecker 乘积的性质乘积的性质u 是是 npmq 矩阵;矩阵;通常通常u 任何两个矩阵都有任何两个矩阵都有 Kronecker 乘积乘积 u Matlab 中实现两个矩阵中实现两个矩阵 Kronecker 相乘的函数为相乘的函数为kron(A,B)Kronecker乘积有时也称张量积本讲稿第十四页,共二十四页矩阵的数组运算矩阵的数组运算q 数组运算:数组运算:对应元素进行运算点与算术运算符之间不能有空格!u 数组运算包括:数组运算包括:点乘点乘、点除点除、点幂点幂u 相应的数组运算符为:相应的数组运算符为:“.*”,“./”,“.”和和“.”例例:A=1 2 3;4 5 6;B=3 2 1;6 5 4;C=A.*B;D=A./B;E=A.B;F=A.B;两矩阵进行点运算是指它们的对应元素进行相关运算,两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。要求两矩阵的维参数相同。本讲稿第十五页,共二十四页函数取值函数取值设设x是变量,是变量,f是一个函数是一个函数u 当当 x=a 是标量时,是标量时,f(x)=f(a)也是一个标量也是一个标量u 当当 x=a,b,c 是向量时,是向量时,f(x)=f(a),f(b),f(c)q 函数作用在矩阵上的取值函数作用在矩阵上的取值u 若若A是矩阵,则是矩阵,则 f(A)是一个与是一个与A同形状的矩阵同形状的矩阵f 作用在作用在 x 的的每个分量上每个分量上本讲稿第十六页,共二十四页函数取值函数取值例例:x=0:pi/4:pi;A=1 2 3;4 5 6;y1=sin(x);y2=exp(A);y3=sqrt(A);例例:本讲稿第十七页,共二十四页矩阵的超越函数矩阵的超越函数q Matlab 提供了三种矩阵函数:expm、sqrtm、logm详情参见联机帮助(详情参见联机帮助(help expm/sqrtm/logm)q 更一般的矩阵函数:funmu funm(A,fun)参数参数 fun 的可以是的可以是 exp,,log,cos,sin,cosh,sinh 本讲稿第十八页,共二十四页数与数组的点幂数与数组的点幂x.y=14,25,36=1,32,729 x.2=12,22,32=1,4,9 2.x=?.前面留个空格例例:x=1 2 3;y=4 5 6;2.x;y=?Matlab中的所有中的所有标点符号必须在标点符号必须在英文状态下输入英文状态下输入本讲稿第十九页,共二十四页Matlab中常见数学函数中常见数学函数:help elfunMatlab中常见矩阵操作命令函数中常见矩阵操作命令函数:help elmatMatlab中常见程序语言的结构中常见程序语言的结构:help lang本讲稿第二十页,共二十四页逻辑运算逻辑运算 MATLAB MATLAB提供了提供了3 3种逻辑运算符:种逻辑运算符:&(&(与与)、|(|(或或)和和(非非)。逻辑运算的运算法则为:逻辑运算的运算法则为:(1)(1)在逻辑运算中,确认非零元素为真,用在逻辑运算中,确认非零元素为真,用1 1表表示,零元素为假,用示,零元素为假,用0 0表示。表示。(2)(2)设参与逻辑运算的是两个标量设参与逻辑运算的是两个标量a a和和b b,那么,那么,a&b a,ba&b a,b全为非零时,运算结果为全为非零时,运算结果为1 1,否则为,否则为0 0。a|b a,ba|b a,b中只要有一个非零,运算结果为中只要有一个非零,运算结果为1 1。a a 当当a a是零时,运算结果为是零时,运算结果为1 1;当;当a a非零时,运算非零时,运算结果为结果为0 0。本讲稿第二十一页,共二十四页 (3)(3)若参与逻辑运算的是两个同维矩阵,那么运算将若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由算结果是一个与原矩阵同维的矩阵,其元素由1 1或或0 0组成。组成。(4)(4)若参与逻辑运算的一个是标量,一个是矩阵,那么若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按运算将在标量与矩阵中的每个元素之间按标量标量规则逐个进行。规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由最终运算结果是一个与矩阵同维的矩阵,其元素由1 1或或0 0组成。组成。(5)(5)逻辑非是单目运算符,也服从矩阵运算规则。逻辑非是单目运算符,也服从矩阵运算规则。(6)(6)在算术、关系、逻辑运算中,算术运算优先级最高,逻在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。辑运算优先级最低。本讲稿第二十二页,共二十四页A=1:5;6:10 find(A=4)m,n=find(A=4);m,nall(A=4)any(A=4)本讲稿第二十三页,共二十四页上机作业上机作业1.试分别生成试分别生成 5 阶的单位阵、阶的单位阵、8 阶均匀分布的随机矩阵及其阶均匀分布的随机矩阵及其下三角矩阵下三角矩阵2.生产列向量生产列向量 x=1,3,5,7,9,293.生成以生成以 x 的元素为对角线的矩阵的元素为对角线的矩阵 A,并输出,并输出 A 的行数的行数4.生成一个与生成一个与 A 同阶的正态分布的随机矩阵同阶的正态分布的随机矩阵 B5.生成由生成由 A 与与 B 点乘得到的矩阵点乘得到的矩阵 D6.生成一个由生成一个由 D 的第的第 8、4、10、13 行和第行和第 7、1、6、9、2 列组成的子矩阵列组成的子矩阵 E7.求出矩阵求出矩阵 E 的最大元素的最大元素本讲稿第二十四页,共二十四页