【Matlab学习2.2】矩阵变换
对角阵
对角阵:只有对角线上有非零元素的矩阵。
数量矩阵:对角线上的元素相等的对角矩阵。
单位矩阵:对角线上的元素都为1的对角矩阵。
提取矩阵的对角线元素
diag(A)
:提取矩阵 A 主对角线元素,产生一个列向量。 diag(A,k)
:提取矩阵 A 第 k 条对角线的元素,产生一个列向量。
构造对角阵
diag(V)
:以向量 V 为主对角线元素,产生对角矩阵。 diag(V,k)
:以向量 V 为第 k 条对角线元素,产生对角矩阵。
例2.2.1:
先建立5×5矩阵 A,然后将 A 的第一行元素乘以1,第二行乘以2,…,第五行乘以5。
>> A = [7,0,1,0,5; 3,5,7,4,1; 4,0,3,0,2; 1,1,9,2,3; 1,8,5,2,9] A = 7 0 1 0 5 3 5 7 4 1 4 0 3 0 2 1 1 9 2 3 1 8 5 2 9 >> D = diag(1:5) D = 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 5 >> D*A #用一个对角阵左乘一个矩阵时,相当于用对角阵对角线的第1个元素乘以该矩阵的第一行,用对角阵对角线的第2个元素乘以该矩阵的第二行,……,依此类推。 ans = 7 0 1 0 5 6 10 14 8 2 12 0 9 0 6 4 4 36 8 12 5 40 25 10 45
思考:要将 A 的各列元素分别乘以对角阵的对角线元素,如何实现?
>> A = [7,0,1,0,5; 3,5,7,4,1; 4,0,3,0,2; 1,1,9,2,3; 1,8,5,2,9] >> D = diag(1:5); >> A*D #要将A的各列元素分别乘以对角阵的对角线元素,可以用一个对角阵右乘矩阵A。 ans = 7 0 3 0 25 3 10 21 16 5 4 0 9 0 10 1 2 27 8 15 1 16 15 8 45
三角阵
上三角阵:矩阵的对角线以下的元素全为零的矩阵。
下三角阵:对角线以上的元素全为零的矩阵。
上三角矩阵
triu(A)
:提取矩阵A的主对角线及以上的元素。 triu(A,k)
:提取矩阵A的第 k 条对角线及以上的元素。
记忆方法:tri—triangle—三角,u—up—上,l—low—下。
例2.2.2:
>> triu(ones(4),-1) ans = 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1
下三角矩阵
在 Matlab 中,提取矩阵A的下三角矩阵的函数是 tril,其用法与 triu 函数完全相同。
矩阵的转置
转置运算符是小数点后面接单引号(.')。
共轭转置,其运算符是单引号('),它在转置的基础上还要取每个数的复共轭。
例2.2.3:
>> A = [1,3;3+4i,1-2i] A = 1.0000 + 0.0000i 3.0000 + 0.0000i 3.0000 + 4.0000i 1.0000 - 2.0000i >> A.' ans = 1.0000 + 0.0000i 3.0000 + 4.0000i 3.0000 + 0.0000i 1.0000 - 2.0000i >> A' ans = 1.0000 + 0.0000i 3.0000 - 4.0000i 3.0000 + 0.0000i 1.0000 + 2.0000i
矩阵的转置:把源矩阵的第一行变成目标矩阵的第一列,第二行变成第二列,…,依此类推。
如果矩阵的元素是实数,那么转置和共轭转置的结果是一样的。
矩阵的旋转
rot90(A,k)
:将矩阵A逆时针方向旋转90º的k倍,当k为1时可省略。
例2.2.4:
>> A=[1,3,2;-3,2,1;4,1,2] A = 1 3 2 -3 2 1 4 1 2 >> rot90(A,2) ans = 2 1 4 1 2 -3 2 3 1 >> A(4,3) = 3 A = 1 3 2 -3 2 1 4 1 2 0 0 3 >> rot90(A) ans = 2 1 2 3 3 2 1 0 1 -3 4 0
矩阵的翻转
对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,…,依此类推。
fliplr(A)
:对矩阵A实施左右翻转 flipud(A)
:对矩阵A实施上下翻转。
记忆方法:filp—翻转,lr—left-right—左右,ud—up-down—左右。
例2.2.5:
验证魔方阵的主对角线、副对角线元素之和相等。
>> A = magic(5) A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 >> sum(diag(A)) #求出矩阵A的主对角线之和 ans = 65 >> sum(diag(fliplr(A))) #对矩阵A实施上下翻转或左右翻转得到矩阵B,这样A的副对角线就移到了B的主对角线 ans = 65 #5阶魔方阵的主对角线、副对角线元素之和相等,都为65。
矩阵求逆
对于一个方阵 A,如果存在一个与其同阶的方阵B,使得
inv(A)
:求方阵A的逆矩阵。
例2.2.6:
用求逆矩阵的方法解线性方程组。
答案:
在线性方程组
>> A = [1,2,3; 1,4,9; 1,8,27]; >> b = [5; -2; 6]; #方法一:使用逆变换 >> x = inv(A)*b x = 23.0000 -14.5000 3.6667 #方法二:使用右除 >> x = A\b x = 23.0000 -14.5000 3.6667
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!