MATLAB矩阵变换
目录
矩阵变换是指对一个矩阵进行某种运算与处理,其结果还是一个矩阵,包括求矩阵的对角阵、三角阵、转置矩阵、旋转矩阵、矩阵求逆等。
对角阵与三角阵
1、对角阵
在研究时,很多时候需要将矩阵的对角线元素提取出来形成一个列向量,而有时又需用一个列向量构造一个对角阵。
(1)提取矩阵的对角线元素
函数diag(A)用于提取矩阵A主对角线元素,产生一个具有min(m,n)个元素的列向量。此外函数diag(A,k)用于提取矩阵A第k条对角线的元素,主对角线往上为正,主对角线往下为负。
>> A=[1,2,3;4,5,6]
A =
1 2 3
4 5 6
>> D=diag(A)
D =
1
5
>> D1=diag(A,1)
D1 =
2
6
>> D2=diag(A,-1)
D2 =
4
(2)构造对角阵
V是具有m个元素的向量,diag(V)产生一个以V为主对角线的方阵。此外函数diag(V,k)产生一个以V为第k条对角线的方阵。
>> diag([1,2,3,4])
ans =
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
>> diag(1:2,-1)
ans =
0 0 0
1 0 0
0 2 0
>> diag(1:3,3)
ans =
0 0 0 1 0 0
0 0 0 0 2 0
0 0 0 0 0 3
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
2、三角阵
(1)上三角阵
函数triu(A)用于产生矩阵A对应的上三角阵。函数triu(A,k)用于求矩阵A的第k条对角线以上的元素。
>> A=[1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> triu(A)
ans =
1 2 3
0 5 6
0 0 9
>> triu(A,1)
ans =
0 2 3
0 0 6
0 0 0
(2)下三角阵
函数tril(A)和tril(A,k)用于提取矩阵A对应的下三角阵。
>> tril(A)
ans =
1 0 0
4 5 0
7 8 9
>> tril(A,-1)
ans =
0 0 0
4 0 0
7 8 0
矩阵的转置与旋转
1、矩阵的转置
转置运算符是小数点后面接单引号(.')
共轭转置运算符是单引号(')
>> A=[1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> A.'
ans =
1 4 7
2 5 8
3 6 9
>> [1,2,5;6,8,4;-1,0,9].'
ans =
1 6 -1
2 8 0
5 4 9
>> B=[2,3+4i;2-7i,i]
B =
2.0000 + 0.0000i 3.0000 + 4.0000i
2.0000 - 7.0000i 0.0000 + 1.0000i
>> B'
ans =
2.0000 + 0.0000i 2.0000 + 7.0000i
3.0000 - 4.0000i 0.0000 - 1.0000i
>> A'
ans =
1 4 7
2 5 8
3 6 9
2、矩阵的旋转
函数rot90(A,k)将矩阵A旋转90°的k倍,当k为1时,可以省略。
>> A=[57,19,38;-2,31,8;0,84,5]
A =
57 19 38
-2 31 8
0 84 5
>> rot90(A)
ans =
38 8 5
19 31 84
57 -2 0
>> rot90(A,2)
ans =
5 84 0
8 31 -2
38 19 57
>> rot90(A,-1)
ans =
0 -2 57
84 31 19
5 8 38
3、矩阵的左右翻转
函数fliplr(A)将矩阵A左右翻转,将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,以此类推
A =
57 19 38
-2 31 8
0 84 5
>> fliplr(A)
ans =
38 19 57
8 31 -2
5 84 0
4、矩阵的上下翻转
函数flipud(A)将矩阵A上下翻转,将原矩阵的第一行和最后一行调换,第二行和倒数第二行调换,以此类推
A =
57 19 38
-2 31 8
0 84 5
>> flipud(A)
ans =
0 84 5
-2 31 8
57 19 38
矩阵的逆与伪逆
1、矩阵的逆
函数inv(A)用于求方阵A的逆矩阵
>> A=[1,-1,1;5,-4,3;2,1,1]
A =
1 -1 1
5 -4 3
2 1 1
>> B=inv(A)
B =
-1.4000 0.4000 0.2000
0.2000 -0.2000 0.4000
2.6000 -0.6000 0.2000
>> B*A
ans =
1.0000 0.0000 -0.0000
-0.0000 1.0000 0.0000
0.0000 -0.0000 1.0000
>> A*B
ans =
1.0000 0.0000 0.0000
-0.0000 1.0000 0.0000
-0.0000 0.0000 1.0000
2、矩阵的伪逆
如果矩阵A不是一个方阵,或者A是一个非满秩的方针时,矩阵A没有逆矩阵,但可以找到一个与A的转置A' 同型的矩阵B,使得
此时称矩阵B为矩阵A的伪逆,也称广义逆矩阵。
函数pinv(A)用于求矩阵A的伪逆
>> A=[0,0,0;0,1,0;0,0,1]
A =
0 0 0
0 1 0
0 0 1
>> pinv(A)
ans =
0 0 0
0 1 0
0 0 1
>> A=[3,1,1,1;1,3,1,1;1,1,3,1]
A =
3 1 1 1
1 3 1 1
1 1 3 1
>> B=pinv(A)
B =
0.3929 -0.1071 -0.1071
-0.1071 0.3929 -0.1071
-0.1071 -0.1071 0.3929
0.0357 0.0357 0.0357
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律