第2章 矩阵和数组及其运算

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。




2.3.4 向量的模和矩阵行列式的值
1、向量的模 一个n维向量的模表示为
X

x
i 1
n
2 i
x x
2 1 2 2
x
2 n

使用MATLAB中的函数norm(X)可以计算维向量的模。 例如 >> X=[12 23 41 96 82 34 87]; norm(X) ans = 164.3746


2.2.2 子矩阵的提取
利用冒号表达式提取子矩阵的方法: 1、A(:,j)表示A矩阵第j列的全部元素;A(i,:)表 示A矩阵第i行的全部元素。 2、A(i:i+m,:)表示A矩阵第i~i+m行的全部元素; A(:,k:k+m)表示A矩阵第k~k+m列的全部元素; A(i:i+m,k:k+m)表示A矩阵第i~i+m行内、并且 是第k~k+m列中的全部元素。 例2-2 已知5行4列矩阵A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16;17 18 19 20],提取子矩阵 A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16;17 18 19 20] A1=A(:,3),A2=A(2,:),A3=A(2:3,:) A4=A(1:3,3:4),A5=A(2:3,2:4)





1、矩阵的左除(运算符号“\”) 1 1 在矩阵A的左边乘 B ,即 B A ,称为矩阵B 除矩阵A,运算符号是B\A。如果矩阵A是一个非奇 异方阵,矩阵的左除A\B等于矩阵A的逆与B的左乘 inv(A) B。应当指出: ⑴如果矩阵A是一个方阵,表示矩阵方程AX=B的解 是X=A\B,或X=inv(A)B,这里的X具有与矩阵B相 同的维数。 ⑵如果矩阵B是一个列向量b时,则X=A\B是线性系 统AX=b的解。 ⑶如果矩阵A是一个m×n矩阵(m>n),X=A\B得到 矩阵方程AX =B的最小二乘解inv(A)B。




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 47] [r,c]=find(a>=20 & a<=60);、 b=find(a>=20 & a<=60); disp ('符合条件的矩阵元素的行号和列号: '),[r,c] disp (' 符合条件的矩阵元素的序号:'),b'










2、矩阵的旋转 使用函数rot90(A,K)可以将A矩阵逆时针方向旋转 90°的K倍,K=1时可以省略。例如 >> A=[1 2 3;4 5 6;7 8 9] B=rot90(A) 运算结果: A = 1 2 3 4 5 6 7 8 9 B = 3 6 9 2 5 8 1 4 7



C=A+B D=A-B 运算结果: A = 1 2 4 5 B = 7 8 10 11 C = 8 10 14 16 D = -6 -6 -6 -6
% 矩阵C存储A+B的数据 % 矩阵D存储A-B的数据 3 6 9 12 12 18 -6 -6


2.3.2 矩阵的乘法





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







3、矩阵的翻转 使用函数flipud(A) 可以将A矩阵上下翻转,即第1 行与最后1行调换,第2行与倒数第2行调换,以此 类推。例如 >> A=[1 2 3;4 5 6;7 8 9;10 11 12] B=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



运算结果: a = 12 34 26 17 21 61 50 89 12 8 25 62 91 23 47 符合条件的矩阵元素的行号和列号: ans = 3 1 1 2 2 2 1 3 3 4 1 5 3 5 符合条件的矩阵元素的序号: ans = 3 4 5 7 12 13 15



运算结果: A = 1 2 3 4 5 6 B = 7 8 9 10 11 12 13 14 15 16 17 18 C = 74 80 86 92 173 188 203 218 可见,矩阵A和B相乘法到的的矩阵C,其行数等于 矩阵A行数(2行),其列数等于矩阵B列数(4列)
矩阵乘(*)是指两个内维相同(前矩阵的列数与 后矩阵行数相等,称为两个矩阵的维数相容)的 矩阵进行乘法运算。 例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,6] B=[7,8,9,10;11,12,13,14;15,16,17,18] C=A*B




⑶函数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、矩阵行列式的值 如果某个矩阵是一个方阵(行数与列数相同), 可以使用函数det()来计算矩阵行列式的值。例如 >> H=[2,1,2;1,2,1;3,2,1] det(H) 运算结果: H= 2 1 2 1 2 1 3 2 1 ans = -6


2.3.5 矩阵的除法 如果A和B是維数相同的两个方阵,而且B是 1 可逆方阵,則它的逆矩阵 B 是另一个同 維数的方阵。 因为矩阵乘法並沒有交換律,所以 B 1 A 1 和 AB 一般而言並不相等。因此MATLAB 提供两种除法(左除运算符号“\”和右除 运算符号“/”)。凡是按矩阵規則可以和 1 逆矩阵 相乘的矩阵(两个矩阵的内 B 维相同),都可以根据左乘或右乘而做除 “\”或除以“/”的计算。




⑵只有一行或一列的矩阵,分别称为行向量或列 向量。例如 >> H=[2,4,6,8,10] H = 2 4 6 8 10 >> L=[3;6;9] L = 3 6 9




2、建立线性分割的行向量 行向量也是一维数组。 1、利用冒号“:”表达式建立线性分割的行向量, 它的格式是: e1:e2:e3 其中,e1是初始值,e2是步长(e2=1时可以省略), e3是终止值。例如: >> x=0:pi/5:pi x = 0 0.6283 1.2566 1.8850 2.5133 3.1416 2、利用函数linspace(e1,e3,n)建立线性分割的 行向量,n是行向量元素的总数。例如: >> linspace(5,20,6) ans = 5 8 11 14 17 20








2、通过元素序号提取矩阵元素 在MATLAB中,矩阵元素按列存储,首先是第1列, 其次是第2列,以此类推,一直到矩阵的最后1列 元素。例如,通过元素序号提取A矩阵第6个元素 >> A=[1 2 3 4;5 6 7 8;9 10 11 12] A(6) 运算结果: A = 1 2 3 4 5 6 7 8 9 10 11 12 ans = 10 可见,矩阵元素序号与它的存储顺序是一一对应






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 6 7 8 9] 以上3种方式建立矩阵A的显示结果是: A = 1 2 3 4 5 6 7 8 9


2.1.2 矩阵的转置和变换
1、矩阵的转置 矩阵的转置用单引号“’”来实现。例如,求矩 阵A=的转置矩阵B >> A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 >> B=A' B = 1 4 7 2 5 8 3 6 9 可见,矩阵的转置就是将它的行与列互换。
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 9 ans = 7





运算结果: A = 1 2 5 6 9 10 13 14 17 18 A1 = 3 7 11 15 19
3 7 11 15 19
4 8 Baidu Nhomakorabea2 16 20 % 第3列所有行的元素


A2 =
5 A3 = 6


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]


2.3.3 矩阵的求逆
根据线性代数理论,矩阵可逆的充分与必要条件 是矩阵的行列式不为零。求矩阵的逆矩阵,可以 使用函数inv()来实现。例如 >> H=[2,1,2;1,2,1;3,2,1] H = 2 1 2 1 2 1 3 2 1 >> nh=inv(H) % 计算方阵H的逆矩阵 nh = -0.0000 -0.5000 0.5000 -0.3333 0.6667 0 0.6667 0.1667 -0.5000
5 9
A4 = 3 7 11 A5 = 6 10
6 10
4 8 12 7 11
% 第2行所有列的元素 7 8 % 第2~3行所有列的元素 7 8 11 12 % 第1~3行、第3~4列的元素
% 第2~3行、第2~4列的元素 8 12



说明:可以利用end运算符表示矩阵的下标。例如, 对于上述A矩阵,提取最后1行所有列的元素 >> A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16;17 18 19 20] A6=A(end,:) 运算结果: A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 A6 = 17 18 19 20
相关文档
最新文档