朱世东2020/7/6Matlab语言及其在电子信息工程中的应用1Matlab语言及其在电子信息工程中的应用主讲:朱世东(V1.1)朱世东2020/7/6Matlab语言及其在电子信息工程中的应用2第三讲MATLAB的数值计算功能一、数组与矩阵的创建二、矩阵运算与数组运算三、基本元素群函数四、线性方程组的解法五、向量与矩阵处理朱世东2020/7/6Matlab语言及其在电子信息工程中的应用3第三讲MATLAB的数值计算功能一、数组与矩阵的创建1、生成数组的函数“:”的用法例1:av=1:10%产生一个从1到10的数组,间隔为1(行向量)av=[1,2,3,4,5,6,7,8,9,10]例2:aw=1:2:10%产生一个从1到10之间的数组,间隔为2aw=[1,3,5,7,9]例3:as=0:pi/40:4*pias=00.78541.57082.35623.14163.92704.71245.49786.2832例4:al=10:-2:0al=1086420朱世东2020/7/6Matlab语言及其在电子信息工程中的应用4第三讲MATLAB的数值计算功能一、数组与矩阵的创建1、生成数组的函数常用数组函数例5:aj=linspace(0,1,10)%利用线性等分指令生成向量(间隔1/9)aj=00.11110.22220.33330.44440.55560.66670.77780.88891.0000(01/92/93/9……1)例6:ak=logspace(1,2,10)%利用对数等分指令生成向量ak=10.000012.915516.681021.544327.825635.938146.415959.948477.4264100.0000(10^110^(1+1/9)10^(1+2/9)10^(1+3/9)……10^(2))例7:ap=rand(1,5)%产生1×5的随机数矩阵。范围(0,1),均值:0.5ap=0.01530.74680.44510.93180.4660朱世东2020/7/6Matlab语言及其在电子信息工程中的应用5第三讲MATLAB的数值计算功能一、数组与矩阵的创建2、生成矩阵的常用函数eye生成单位矩阵例1:eye(n)%生成n维的单位阵eye(m,n)%生成m×n维的单位阵eye(size(A))%生成与A同维的单位阵ones生成全1阵(常用于大型程序中预先定维)zeros生成全0阵(常用于大型程序中预先定维)rand生成均匀随机阵(范围(0,1),均值:0.5)randn生成正态随机阵(均值:0.5;方差:1)朱世东2020/7/6Matlab语言及其在电子信息工程中的应用6第三讲MATLAB的数值计算功能一、数组与矩阵的创建2、生成矩阵的常用函数diag生成对角形矩阵diag(A)=diag(A,0)朱世东2020/7/6Matlab语言及其在电子信息工程中的应用7第三讲MATLAB的数值计算功能一、数组与矩阵的创建3、数据输出格式精确到小数点后面4位只保留5位有效数字朱世东2020/7/6Matlab语言及其在电子信息工程中的应用8第三讲MATLAB的数值计算功能二、矩阵运算与数组运算1、矩阵运算•A+B加法•A*B乘法•k*A数乘矩阵•A’A的共轭转置•conj(A’)或conj(A)’A的转置(conjugate:共轭)•A^nA(方阵)的n次幂•inv(A)A的逆阵(inverse)•A/BA右除B(=A*inv(B))•B\AA左除B(=inv(B)*A)12123431AB朱世东2020/7/6Matlab语言及其在电子信息工程中的应用9第三讲MATLAB的数值计算功能二、矩阵运算与数组运算1、矩阵运算思考题:求两个列向量的内积132132XY朱世东2020/7/6Matlab语言及其在电子信息工程中的应用10第三讲MATLAB的数值计算功能二、矩阵运算与数组运算2、元素群运算(“·”运算符)•k.*A数乘矩阵(=k*A)•A.*B对应各元素相乘•A.^n矩阵A各元素的n次幂•A./BA对应各元素右除B•B.\AA对应各元素左除B(=A./B)(以上A、B要求同维)12123431AB朱世东2020/7/6Matlab语言及其在电子信息工程中的应用11第三讲MATLAB的数值计算功能三、基本元素群函数1、三角函数按弧度计算按角度计算朱世东2020/7/6Matlab语言及其在电子信息工程中的应用12第三讲MATLAB的数值计算功能三、基本元素群函数2、指数函数12()(22)kknextpownkn朱世东2020/7/6Matlab语言及其在电子信息工程中的应用13第三讲MATLAB的数值计算功能三、基本元素群函数3、复数相关函数朱世东2020/7/6Matlab语言及其在电子信息工程中的应用14第三讲MATLAB的数值计算功能三、基本元素群函数4、取整和求余函数当X与Y同号时,mod(X,Y)=rem(X,Y)当两操作数异号时,rem(X,Y)=mod(X,Y)-Y朱世东2020/7/6Matlab语言及其在电子信息工程中的应用15第三讲MATLAB的数值计算功能四、线性方程组的解法•如果系数矩阵A的行数m等于列数n,且A为非奇异阵(即A的行列式:det(A)≠0),称方程为恰定方程;•如果mn,称方程为超定方程;•如果mn,称方程为欠定方程。朱世东2020/7/6Matlab语言及其在电子信息工程中的应用16第三讲MATLAB的数值计算功能四、线性方程组的解法1、恰定方程的解法例:已知Ax=b,求x。121523012101bA解:方法一:逆阵法A=[1,0,1;2,1,0;-3,2,-5];b=[1,2,-1]';x=inv(A)*bx=-0.00002.00001.000011,,AxbAxAb由两端同时左乘得方法二:左除法A=[1,0,1;2,1,0;-3,2,-5];b=[1,2,-1]';x=A\bx=02.00001.0000朱世东2020/7/6Matlab语言及其在电子信息工程中的应用17第三讲MATLAB的数值计算功能四、线性方程组的解法1、恰定方程的解法这两种方法推荐用左除法,它不但速度快,而且精度高。例:比较逆阵法和左除法的所用的时间和误差解:建立一个m文件:A=rand(100);%生成100×100的随机矩阵x=ones(100,1);%产生一个向量x为全1的100维向量(真解)b=A*x;%令b等于Axtic%开始计时x1=inv(A)*b;%逆阵法(近似解)toc%计时结束er1=norm(x-x1)%近似解与真解的误差(2-范数)re1=norm(A*x1-b)/norm(b)%相对误差(2-范数)ticx2=A\b;%左除法tocer2=norm(x-x2)re2=norm(A*x2-b)/norm(b)朱世东2020/7/6Matlab语言及其在电子信息工程中的应用18第三讲MATLAB的数值计算功能四、线性方程组的解法2、用左除法解超定方程及欠定方程例:解方程组A=[1,2,3;4,5,-6;7,8,9;10,11,12];b=(1:4)';x=A\bx=-0.33330.66670.00001231231456278931011124xxx例:解方程组A=[1,4,7,10;2,5,8,11;3,-6,9,12];b=[133]';x=A\bx=2.00000.16670-0.16673311296311852107414321xxxx朱世东2020/7/6Matlab语言及其在电子信息工程中的应用19第三讲MATLAB的数值计算功能五、向量与矩阵处理1、标识与子矩阵的提取•A(i,j)表示矩阵A的第i行、第j列交叉点处的元素,i,j是两个整数。•A(u,v)提取A的子矩阵,u,v是两个向量,分别指定行与列。•向量标识:A(L1,:)A(:,L2)A(L1,L2),A(L1,:)表示提取A的L1指定的行、所有列构成子矩阵;A(:,L2)表示提取A的所有行,L2指定的列构成子矩阵;A(L1,L2)表示提取A的L1指定的行,L2指定的列构成子矩阵。例:A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15];A([1,3],:)A(:,[2,4,5])A(:,1:3)A([1,2],[1,3,5])朱世东2020/7/6Matlab语言及其在电子信息工程中的应用20第三讲MATLAB的数值计算功能五、向量与矩阵处理1、标识与子矩阵的提取*例:将向量中满足不超过0.5的元素提取出来。x=rand(1,10)L=(x=0.5)y=x(L)朱世东2020/7/6Matlab语言及其在电子信息工程中的应用21第三讲MATLAB的数值计算功能五、向量与矩阵处理2、空阵用于缩维例:提取A的1,3,5列。A=[1,2,3,4,5,6;7,8,9,10,11,12;13,14,15,16,17,18];A1=A(:,[1,3,5])%方法一A1=1357911131517A(:,[2,4])=[]%方法二:利用空阵A=1357911131517朱世东2020/7/6Matlab语言及其在电子信息工程中的应用22第三讲MATLAB的数值计算功能五、向量与矩阵处理3、特殊矩阵的提取•fliplr(A)矩阵A左右翻转•flipud(A)矩阵A上下翻转•v=diag(A)提取A的对角线上的元素构造一个列向量v•M=diag(v)用向量v的元素作对角元素,构造一个对角矩阵M•L=tril(A)取矩阵A的左下三角部分(基于主对角线),其它元素为零•U=triu(A)取矩阵A的右上三角部分(基于主对角线),其它元素为零•rot90(A)矩阵A逆时针旋转90°•例:A=round(rand(4,5)*10)朱世东2020/7/6Matlab语言及其在电子信息工程中的应用23第三讲MATLAB的数值计算功能(第三讲完)