资源预览内容
第1页 / 共37页
第2页 / 共37页
第3页 / 共37页
第4页 / 共37页
第5页 / 共37页
第6页 / 共37页
第7页 / 共37页
第8页 / 共37页
第9页 / 共37页
第10页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第2章 矩阵和数组及其运算2.1 矩阵的建立及变换,矩阵是线性代数的基本运算单元,MATLAB的所有数值运算功能都是以矩阵为基本单位来实现的。2.2.1 矩阵的建立一个m行n列的矩阵由 个元素组成,表示为如下阵列,1、直接输入法矩阵可在方括号“ ”中以直接列出元素的方式建立,列元素之间用空格或逗号“,”隔开,行与行之间用分号“;”或回车键隔开。 A=1 2 3;4 5 6;7 8 9 A=1,2,3;4,5,6;7,8,9 A=1 2 3 4 5 67 8 9以上3种方式建立矩阵A的显示结果是:A = 1 2 3 4 5 6 7 8 9,只有一行或一列的矩阵,分别称为行向量或列向量。例如 H=2,4,6,8,10H = 2 4 6 8 10 L=3;6;9L = 3 6 9,2、建立线性分割的行向量行向量也是一维数组。1、利用冒号“:”表达式建立线性分割的行向量,它的格式是: e1:e2:e3其中,e1是初始值,e2是步长(e2=1时可以省略),e3是终止值。例如: x=0:pi/5:pix = 0 0.6283 1.2566 1.8850 2.5133 3.14162、利用函数linspace(e1,e3,n)建立线性分割的行向量,n是行向量元素的总数。例如: linspace(5,20,6)ans = 5 8 11 14 17 20,3、利用函数来建立某些特定矩阵函数zeros(m,n)可以创建m 行n列各个元素全为零的零矩阵。例如 zeros(2,3)ans = 0 0 0 0 0 0函数ones(m,n)可以创建m 行n列各个元素全为1的幺矩阵。例如 ones(3,2)ans = 1 1 1 1 1 1,函数eye(m,n)可以创建m 行n列主对角元素全为1、其他元素全为0的单位矩阵。例如 eye(3,3)ans = 1 0 0 0 1 0 0 0 1函数rand(m,n)可以创建m 行n列的随机矩阵。例如 rand(2,3)ans = 0.9501 0.6068 0.8913 0.2311 0.4860 0.7621,2.1.2 矩阵的转置和变换1、矩阵的转置矩阵的转置用单引号“”来实现。例如,求矩阵A=的转置矩阵B A=1 2 3;4 5 6;7 8 9A = 1 2 3 4 5 6 7 8 9 B=AB = 1 4 7 2 5 8 3 6 9可见,矩阵的转置就是将它的行与列互换。,2、矩阵的旋转使用函数rot90(A,K)可以将A矩阵逆时针方向旋转90的K倍,K=1时可以省略。例如 A=1 2 3;4 5 6;7 8 9B=rot90(A)运算结果:A = 1 2 3 4 5 6 7 8 9B = 3 6 9 2 5 8 1 4 7,3、矩阵的翻转使用函数flipud(A) 可以将A矩阵上下翻转,即第1行与最后1行调换,第2行与倒数第2行调换,以此类推。例如 A=1 2 3;4 5 6;7 8 9;10 11 12B=flipud(A)运算结果:A = B = 1 2 3 10 11 12 4 5 6 7 8 9 7 8 9 4 5 6 10 11 12 1 2 3,2.2 矩阵元素和子矩阵的提取,2.2.1 矩阵元素的提取1、通过下标提取矩阵元素A(i,j)表示A矩阵第i 行第j列的元素。例如,提取A矩阵第3行第3列元素A(3,1) A=1 2 3;4 5 6;7 8 9,A(3,1)运算结果:A = 1 2 3 4 5 6 7 8 9ans = 7,2、通过元素序号提取矩阵元素在MATLAB中,矩阵元素按列存储,首先是第1列,其次是第2列,以此类推,一直到矩阵的最后1列元素。例如,通过元素序号提取A矩阵第6个元素 A=1 2 3 4;5 6 7 8;9 10 11 12A(6)运算结果:A = 1 2 3 4 5 6 7 8 9 10 11 12ans = 10可见,矩阵元素序号与它的存储顺序是一一对应,3、函数find(c)查找符合条件的矩阵元素的行和列函数find(c)的使用格式:row,col = find(c)其中,c一般为逻辑表达式;row返回满足条件的元素的行号,col返回满足条件的元素的列号。例2-1 查找矩阵a=12 34 26 17 21;61 50 89 12 08;25 62 91 23 47中大于等于20、小于等于60的矩阵元素。a=12 34 26 17 21;61 50 89 12 08;25 62 91 23 47r,c=find(a=20 & a=20 & a A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16;17 18 19 20A6=A(end,:)运算结果:A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20A6 = 17 18 19 20,2.3 矩阵的运算,矩阵运算是MATLAB的核心,从运算的角度来看,数组和矩阵代表完全不同的两种变量,数组运算是针对数组元素之间进行运算;矩阵运算是从矩阵的整体出发,是按照线性代数法则进行运算。2.3.1 矩阵的加法和减法同阶(行、列数分别相等)的两个矩阵之间可以进行加法或减法运算,是指它们对应元素之间的运算。例2-3 有两个2行3列的矩阵A=1,2,3;4,5,6和B=7,8,9;10,11,12,试进行加法和减法运算。A=1,2,3;4,5,6,B=7,8,9;10,11,12,C=A+B % 矩阵C存储A+B的数据D=A-B % 矩阵D存储A-B的数据运算结果:A = 1 2 3 4 5 6B = 7 8 9 10 11 12C = 8 10 12 14 16 18D = -6 -6 -6 -6 -6 -6,2.3.2 矩阵的乘法矩阵乘(*)是指两个内维相同(前矩阵的列数与后矩阵行数相等,称为两个矩阵的维数相容)的矩阵进行乘法运算。例2-4 有一个2行3列的矩阵A=1,2,3;4,5,6和一个3行4列的矩阵B=7,8,9,10;11,12,13,14;15,16,17,18,试对它们进行乘法运算。A=1,2,3;4,5,6B=7,8,9,10;11,12,13,14;15,16,17,18C=A*B,运算结果:A = 1 2 3 4 5 6B = 7 8 9 10 11 12 13 14 15 16 17 18C = 74 80 86 92 173 188 203 218可见,矩阵A和B相乘法到的的矩阵C,其行数等于矩阵A行数(2行),其列数等于矩阵B列数(4列),
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号