第二章矩阵及其运算1.矩阵的创建(1)直接创建;a=[123;456;789]运行:a=123456789(2)载入外部数据;用记事本创建一个包含数据的文本文件,命名为data.txt,并保存在MATAB目录下,运行后将自动建立一个名为data的矩阵(3)利用MATLAB内置函数;ones(n1,n2)产生全为1的矩阵zeros(n1,n2)产生全为0的矩阵eye(n1,n2)产生单位阵rand(n1,n2)产生在(0,1)区间均匀分布的随机阵randn(n1,n2)均值为0,方差为1的标准正态分布随机阵compan伴随矩阵galleryHigham检验矩阵hadamardHadamard阵wilknsionwilknsion特征值检验矩阵hankelHankel阵hilb(n)Hilb阵invhilb(n)逆Hilb阵magic(n)魔方阵pascalPascal阵rosser经典对称特征值toeplitzToeplitz阵vanderVander阵(4)利用M文件编辑器使用MATLAB文件编辑器或者其他文本编辑器创建一个文件夹,代码要和MATLAB命令行窗口输入的命令一样,然后以.m格式保存该文件。2.矩阵寻访(1)下标元素访问a(6)是指0.0975是在矩阵单列排列时的第六个元素(2)单元素访问:b=a(2,2)(行,列)则有b=0.0975(3)多元素访问:(以矩阵A为例)A(m,n,q):表示取数组或矩阵A的第m个元素开始,每隔n步,一直到q的所有元素;A([mng]):表示取数组或矩阵A中的第m,n,g个元素;A(:,c):表示取第c列所有元素;A(r,:):表示取第r行所有元素;A(i:i+m,:):表示取从第i行到i+m行的全部元素;A(:,k:k+n):表示取从第k列到k+n列的全部元素;A(i:i+m,k:k+n):表示取从第i行到i+m行内,并在第k列到k+n列的全部元素。例如:3.矩阵拼接(1)水平方向拼接:c=[ab]或者c=[a,b]垂直方向拼接:c=[a;b](2)Cat函数用于指定方向拼接:m=cat(1,a,b,c,...)垂直拼接;m=cat(2,a,b,c,...)水平拼接;m=cat(3,a,b,c,...)三维数组(3)repmat函数用于通过输入矩阵的备份拼接成新的大矩阵B=repmat(A,m,n):表示将A矩阵做一个最小单元,用m行A矩阵,n列A矩阵拼成矩阵B(4)horzcat将矩阵水平拼接C=horzcat(a,b)(5)vertcat将矩阵垂直拼接C=vertcat(a,b)(6)blkdiag用多个矩阵构成一个块对角矩阵C=blkdiag(a,b,c,d....)注意:并且,可以看出来,在matlab中由于显示窗口宽度有限,在显示比较大的矩阵时,总是分块显示,每10行为一块4.矩阵运算(1)矩阵除法:A\B等效于A的逆矩阵左乘B矩阵;B/A等效于A的逆矩阵右乘B矩阵(2)矩阵乘方若A为方阵,x为标量,则矩阵的乘方表示为A^x(3)矩阵的按位运算(针对对应位置进行计算)矩阵的按位运算符前一般有一个“.”,按位乘(.*),按位左除(.\),按位右除(./)(4)矩阵行列式的秩det(a)求矩阵a的行列式的值;rank(a)求矩阵a的秩(5)矩阵的逆和迹矩阵的逆:inv(a)矩阵的迹:trace(a)(6)矩阵的范数cond(a,1):表示计算a的1-范数下的条件数;cond(a,2)或cond(a):表示计算a的2-范数下的条件数;cond(a,inf):表示计算a的∞-范数下的条件数(7)矩阵的特征值与特征向量b=eig(a):表示求矩阵a的全部特征值,构成向量b;[c,d]=eig(a):表示求矩阵a的全部特征值,构成对角阵d,并求矩阵a的特征向量构成c的列向量(8)矩阵的超越函数(直接作用于方阵)sqrtm(a):计算矩阵的平方根。若a为对称正定矩阵,则能算出它的平方根,若a矩阵含有负的特征根,则sqrtm(a)可得到一个复矩阵;矩阵对数函数logm的输入参数的条件与输出结果间的关系和函数sqrtm(a)一样;矩阵指数函数expm的功能是求矩阵指数,expm函数与logm函数是互逆的;通用矩阵函数funm对矩阵a的计算由fun定义的函数矩阵的函数值。