1.常见矩阵函数运算
2.矩阵翻转
3.矩阵抽取
矩阵函数运算:
inv(A):对矩阵进行求逆
det(A):对矩阵求行列式
rank(A):求矩阵的秩
eig(A):求矩阵的特征值和特征向量
trace(A):求矩阵的迹,就是主对角元素之和
rref(A):把A化成约化阶梯型
svd(A):把矩阵进行奇异值分解
cond(A):求矩阵的条件数(啥是条件数,我不太清楚)
对矩阵的一些特殊操作:
对矩阵变维有两种方法:1.“:” ,主要针对两个矩阵进行变维,前提:两个矩阵事先定义好维数
a=1:24
a =
1 至 19 列
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
20 至 24 列
20 21 22 23 24
>> c=ones(4,6)
c =
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
>> c(:)=a(:)
c =
1 5 9 13 17 21
2 6 10 14 18 22
3 7 11 15 19 23
4 8 12 16 20 24
2.reshape函数
b=reshape(a,3,8)
b =
1 4 7 10 13 16 19 22
2 5 8 11 14 17 20 23
3 6 9 12 15 18 21 24
矩阵翻转:
有rot90、fliplr、flipud和flipdim函数。
rot90(A):将A逆时针翻转90度。
rot90(A,K):将A逆时针翻转90*K度。
fliplr(A):将A左右翻转。
flipud(A):将A上下翻转。
flipdim(A,dim):将A绕dim维翻转,dim为1时表示行,为2时表示列。
b =
1 4 7 10
2 5 8 11
3 6 9 12
>> rot90(b)
ans =
10 11 12
7 8 9
4 5 6
1 2 3
>> rot90(b,2)
ans =
12 9 6 3
11 8 5 2
10 7 4 1
>> fliplr(b)
ans =
10 7 4 1
11 8 5 2
12 9 6 3
>> flipud(b)
ans =
3 6 9 12
2 5 8 11
1 4 7 10
>> flipdim(b,1)
ans =
3 6 9 12
2 5 8 11
1 4 7 10
>> flipdim(b,2)
ans =
10 7 4 1
11 8 5 2
12 9 6 3
常见的矩阵抽取函数:
有diag、tril、triu函数。
diag(X,k)表示抽取矩阵X的第k条对角线上元素构成向量。k为零时表示抽取主对角线上元素。
diag(V,k)表示生成一个n阶对角阵,矩阵第k条对角线上的元素为向量V。
tril(X,k)提取X的第k条对角线下面的部分,生成下三角矩阵。
triu(X,k)提取X的第k条对角线上面的部分,生成上三角矩阵。
b =
1 5 9 13 17 21 25 29 33
2 6 10 14 18 22 26 30 34
3 7 11 15 19 23 27 31 35
4 8 12 16 20 24 28 32 36
>> diag(b,2)
ans =
9
14
19
24
>> diag(b)
ans =
1
6
11
16
>> diag(b,1)
ans =
5
10
15
20
>> v=[1 1 1 1];
>> diag(v,2)
ans =
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
0 0 0 0 0 0
0 0 0 0 0 0
>> tril(b,1)
ans =
1 5 0 0 0 0 0 0 0
2 6 10 0 0 0 0 0 0
3 7 11 15 0 0 0 0 0
4 8 12 16 20 0 0 0 0
>> triu(b,2)
ans =
0 0 9 13 17 21 25 29 33
0 0 0 14 18 22 26 30 34
0 0 0 0 19 23 27 31 35
0 0 0 0 0 24 28 32 36