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