matlab02向量与矩阵运算.ppt
向量与矩阵运算,向量与矩阵的生成,向量与矩阵运算,从矩阵中抽取行或列,向量与矩阵的生成(续),向量与矩阵运算,矩阵的生成,直接输入:A=1,2,3;4,5,6;7,8,9,由向量生成,由函数生成,通过编写m文件生成,例:C=magic(3),常见矩阵生成函数,矩阵操作,A(:)与 A(:,:)的区别?,如何获得由 A 的第一、三行和第一、二列组成的子矩阵?,矩阵操作,矩阵的旋转,fliplr(A)左右旋转,flipud(A)上下旋转,rot90(A)逆时针旋转 90 度;rot90(A,k)逆时针旋转 k90 度,矩阵操作,矩阵的转置与共轭转置,点与单引号之间不能有空格!,矩阵操作,改变矩阵的形状:reshape,reshape(A,m,n):将矩阵元素按 列方向 进行重组,重组后得到的新矩阵的元素个数必须与原矩阵元素个数相等!,矩阵操作,查看矩阵的大小:size,size(A)列出矩阵 A 的行数和列数,size(A,1)返回矩阵 A 的行数,size(A,2)返回矩阵 A 的列数,length(x)返回向量 X 的长度,length(A)等价于 max(size(A),矩阵基本运算,矩阵的加减:对应分量进行运算,要求参与加减运算的矩阵具有 相同的维数,矩阵的普通乘法,要求参与运算的矩阵满足线性代数中矩阵相乘的原则,矩阵基本运算,矩阵的除法:/、右除和左除,若 A 可逆方阵,则,AB A 的逆左乘 B inv(A)*B,B/A A 的逆右乘 B B*inv(A),X=AB A*X=BX=B/A X*A=B,通常,矩阵除法可以理解为,当 A 和 B 行数相等时即可进行左除 当 A 和 B 列数相等时即可进行右除,矩阵的乘方,矩阵的乘方,若 a 是标量,A 是方阵,且 V,D=eig(A),则 aA V*(aD)/V,若 A,P 均是矩阵,则 AP 无定义,矩阵的数组运算,数组运算:对应元素进行运算,点与算术运算符之间不能有空格!,数组运算包括:点乘、点除、点幂,相应的数组运算符为:“.*”,“./”,“.”和“.”,参与运算的对象必须具有相同的形状!,函数取值,设 x 是变量,f 是一个函数,当 x=a 是标量时,f(x)=f(a)也是一个标量,当 x=a,b,c 是向量时,f(x)=f(a),f(b),f(c),函数作用在矩阵上的取值,若 A 是矩阵,则 f(A)是一个与 A 同形状的矩阵,f 作用在 x 的每个分量上,函数取值,例:,矩阵的超越函数,Matlab 提供了三种矩阵函数:expm、sqrtm、logm,详情参见联机帮助(help expm/sqrtm/logm),矩阵与数的运算,加减:矩阵的每个元素都与数作加减运算,数乘:矩阵的每个元素都与数作乘法运算,矩阵除以一个数:每个元素都除以这个数,点幂:,底为矩阵,指数为标量 底为标量,指数为矩阵,数与数组的点幂,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中常见数学函数,log 是自然对数,即以 e 为底数mod(x,y)结果与 y 同号,rem(x,y)则与 x 同号max 等函数的参数是矩阵时,是作用在矩阵各列上,