Matlab的对角阵、三角阵,矩阵变换:矩阵的转置、旋转、翻转、求逆、方阵的行列式、矩阵的秩求解

对角阵

对角矩阵:主对角线之外的元素皆为0的矩阵。
数量矩阵:主对角线上的元素相等的对角矩阵。
单位矩阵:主对角线上的元素都为1的对角矩阵。

1. 提取矩阵的对角线元素(得到一个一维矩阵)
diag(A):提取矩阵A主对角线元素,产生一个列向量。
diag(A,k):提取矩阵A第k条对角线的元素,产生一个列向量。

>> A=rand(4)
A =
    0.8147    0.6324    0.9575    0.9572
    0.9058    0.0975    0.9649    0.4854
    0.1270    0.2785    0.1576    0.8003
    0.9134    0.5469    0.9706    0.1419
>> diag(A)
ans =
    0.8147
    0.0975
    0.1576
    0.1419
>> diag(A,1)
ans =
    0.6324
    0.9649
    0.8003

2. 构造对角矩阵(得到一个二维矩阵)
diag(V):以向量V为主对角线元素,产生对角矩阵。
diag(V,k):以向量V为第k条对角线元素,产生对角矩阵。

>> V=[1:5];
>> A=diag(V)
A =
     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
     
>> B=diag(1:4,1)
B =
     0     1     0     0     0
     0     0     2     0     0
     0     0     0     3     0
     0     0     0     0     4
     0     0     0     0     0

例1:建立5×5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。


>> A=rand(5)
A =
    0.8147    0.0975    0.1576    0.1419    0.6557
    0.9058    0.2785    0.9706    0.4218    0.0357
    0.1270    0.5469    0.9572    0.9157    0.8491
    0.9134    0.9575    0.4854    0.7922    0.9340
    0.6324    0.9649    0.8003    0.9595    0.6787
>> B=diag(1:5)
B =
     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
>> C=B*A        //这里使用B乘A
C =             //左乘行变换,右乘列变换
    0.8147    0.0975    0.1576    0.1419    0.6557
    1.8116    0.5570    1.9412    0.8435    0.0714
    0.3810    1.6406    2.8715    2.7472    2.5474
    3.6535    3.8300    1.9415    3.1688    3.7360
    3.1618    4.8244    4.0014    4.7975    3.3937

如果是想让矩阵A的第一列乘1,第二列乘2,第n列乘n,可以用右乘(相对A而言),即A*B。

三角阵

上三角阵:triu函数 (triangle+up)
下三角阵:tril函数
triu(A):提取矩阵A的主对角线及以上的元素。
triu(A,k):提取矩阵A的第k条对角线及以上的元素。
tril函数同理。

>> triu(ones(4))
ans =
     1     1     1     1
     0     1     1     1
     0     0     1     1
     0     0     0     1
>> C=randn(4)
C =
    1.0347   -0.7873   -0.8095   -0.7549
    0.7269    0.8884   -2.9443    1.3703
   -0.3034   -1.1471    1.4384   -1.7115
    0.2939   -1.0689    0.3252   -0.1022
>> tril(C,-1)
ans =
         0         0         0         0
    0.7269         0         0         0
   -0.3034   -1.1471         0         0
    0.2939   -1.0689    0.3252         0     

矩阵的转置

转置运算符是小数点后面接单引号.’)。
共轭转置,其运算符是单引号(),它在转置的基础上还要取每个数的复共轭。(复数矩阵才用)

>> A=[1:3;4:6;7:9]
A =
     1     2     3
     4     5     6
     7     8     9
>> A.'
ans =
     1     4     7
     2     5     8
     3     6     9

矩阵的旋转

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


>> A
A =
     1     2     3
     4     5     6
     7     8     9
>> rot90(A)
ans =
     3     6     9
     2     5     8
     1     4     7

矩阵的翻转

flipIr(A):对矩阵A实施左右翻转。
flipud(A):对矩阵A实施上下翻转。

左右翻转是指第一列和最后一列交换,第二列和倒数第二列交换…依次类推。


>> A
A =
     1     2     3
     4     5     6
     7     8     9
>> fliplr(A)
ans =
     3     2     1
     6     5     4
     9     8     7
>> flipud(A)
ans =
     7     8     9
     4     5     6
     1     2     3

例2:验证魔方阵的主对角线、副对角线元素之和相等。

扫描二维码关注公众号,回复: 12416684 查看本文章
>> 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))
ans =
    65
>> B=fliplr(A)
B =
    15     8     1    24    17
    16    14     7     5    23
    22    20    13     6     4
     3    21    19    12    10
     9     2    25    18    11
>> sum(diag(B))
ans =
    65

矩阵的求逆

切记:求逆是针对方阵而言的

对于一个方阵A,如果存在一个与其同阶的方阵B,使得AB=BA=为单位矩阵,则称B为A的逆矩阵,当然, A也是B的逆矩阵。

inv函数

>> A
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
>> B=inv(A)
B =
   -0.0049    0.0512   -0.0354    0.0012    0.0034
    0.0431   -0.0373   -0.0046    0.0127    0.0015
   -0.0303    0.0031    0.0031    0.0031    0.0364
    0.0047   -0.0065    0.0108    0.0435   -0.0370
    0.0028    0.0050    0.0415   -0.0450    0.0111
>> A*B
ans =
    1.0000   -0.0000   -0.0000   -0.0000   -0.0000
    0.0000    1.0000         0         0    0.0000
    0.0000   -0.0000    1.0000    0.0000   -0.0000
    0.0000   -0.0000    0.0000    1.0000    0.0000
   -0.0000    0.0000    0.0000    0.0000    1.0000

方阵的行列式

det(A):求方阵A所对应的行列式的值。

矩阵的秩

rank(A):求矩阵A的秩。

>> A=[3,2,1;3,1,5;3,2,3]
A =
     3     2     1
     3     1     5
     3     2     3
>> det(A)
ans =
    -6
>> rank(A)
ans =
     3

猜你喜欢

转载自blog.csdn.net/HangHug_L/article/details/107944238