MATLAB-2-2矩阵变换

1. 对角阵

1)对角矩阵

只有对角线上有非零元素的矩阵

2)数量矩阵

对角线上元素相等的对角矩阵

3)单位矩阵

对角线上元素都为1的对角矩阵

2. 提取矩阵的对角线元素

diag(A):提取矩阵A主对角线元素,产生一个列向量
diag(A,k):提取矩阵A第k条对角线的元素,产生一个列向量
主对角线为第0条对角线,往上为第1条,…,往下为第-1条,…。
在这里插入图片描述

3. 构造对角矩阵

diag(V):以向量V为主对角线元素,产生对角矩阵
diag(V,k):以向量V为第k条对角线元素,产生对角矩阵
e.g.A矩阵主对角线以下第2条对角线元素形成一个对角矩阵B,相应命令

B=diag(diag(A,-2))
%最内层diag( )提取矩阵A主对角线以下第2条对角线元素,产生一个列向量
%最外层diag( )基于向量diag(A,-2)为主对角线元素,生成对角矩阵

e.g.建立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
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*D
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
%对角阵右乘,A的每列元素分别乘以对角阵的对角线元素
%对角阵左乘,对行操作;对角阵右乘,对列操作

4. 三角阵

上三角阵:矩阵对角线以下元素全为0的矩阵
下三角阵:矩阵对角线以上元素全为0的矩阵
triu(A):提取矩阵A的主对角线及以上的元素,u代表up
triu(A,k):提取矩阵A的第k条对角线及以上的元素
tril(A):提取矩阵A的主对角线及以下的元素,l代表low
tril(A,k):提取矩阵A的第k条对角线及以下的元素

>> triu(ones(4),-1)
ans =
     1     1     1     1
     1     1     1     1
     0     1     1     1
     0     0     1     1
%ones(4),产生4阶全1矩阵
>> tril(ones(4),-1)
ans =
     0     0     0     0
     1     0     0     0
     1     1     0     0
     1     1     1     0

5. 矩阵的转置

转置运算符:小数点后接单引号(.’);共轭转置:运算符为单引号(’),在转置的基础上取每个数的复共轭。若矩阵元素是实数,转置和共轭转置结果相同。

>> 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为复数矩阵
>> 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
%共轭转置

6. 矩阵的旋转

rot90(A,k):将矩阵A逆时针方向旋转90°的k倍,当k为1时可省略。

>> A=[1,3,2;-3,2,1;4,1,2]
A =
     1     3     2
    -3     2     1
     4     1     2
>> rot90(A)
ans =
     2     1     2
     3     2     1
     1    -3     4
>> rot90(A,2)
ans =
     2     1     4
     1     2    -3
     2     3     1

e.g.生成A矩阵,然后将A左旋90°后得到B,右旋90°后得到C

>> A=[1,4,7,10;2,5,8,11;3,6,9,12];
>> B=rot90(A)
B =
    10    11    12
     7     8     9
     4     5     6
     1     2     3
>> C=rot90(A,-1)
C =
     3     2     1
     6     5     4
     9     8     7
    12    11    10
%rot90( )默认逆时针旋转,可以在旋转次数前添加一个负号,表示顺时针旋转

7. 矩阵的翻转

左右翻转,将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,…
fliplr(A):对矩阵A实施左右翻转,l代表left,r代表right
上下翻转,将原矩阵的第一行和最后一行调换,第二行和倒数第二行调换,…
flipud(A):对矩阵A实施上下翻转,u代表up,d代表down
e.g.验证魔方矩阵的主对角线、副对角线元素之和相等

>> A=magic(5);
%产生一个5阶魔方矩阵,每行每列以及对角线元素之和相等
>> D1=diag(A);
>> sum(D1)
ans =
    65
%计算主对角线元素之和
>> B=flipud(A);
%矩阵上下翻转
>> D2=diag(B);
>> sum(D2)
ans =
    65
%计算副对角线元素之和
%上下翻转之后矩阵中,主对角线上元素为原矩阵副对角线上元素

8. 矩阵的求逆

对于一个方阵A,如果存在一个与其同阶的方阵B,使得AB=BA=l(l为单位矩阵),则称B为A的逆矩阵,A也是B的逆矩阵。
inv(A):求方阵A的逆矩阵
补充:可逆矩阵一定是方阵吗?
线性代数中,可逆矩阵一定是方阵,但也存在左逆和右逆的概念。
即当A,B分别为ms,sm阶的非零矩阵,且AB=Em时,称A右可逆,B为A的右逆。
来自 https://zhidao.baidu.com/question/484992245.html
e.g.用求逆矩阵的方法解线性方程组

>> 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
%A左除b,相当于b左除以A
x =
   23.0000
  -14.5000
    3.6667
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值