请关注公众号《硬件软件极客部落》,将分享更多内容
前言:
在很多场合需要用到矩阵求逆,如最小而成,PLS,CCA,PCA等一系列算法中,在MATLAB中,求逆矩阵可以使用内置函数inv
,但更好的做法是使用矩阵除法(/
或 \
),因为它数值稳定且通常比直接求逆快得多。请注意,在实际应用中,如果矩阵不可逆(行列式为0),不应使用inv
,因为它会导致错误或不稳定的结果。在使用inv
前,应先检查矩阵的行列式是否为零。而使用矩阵除法\
时,MATLAB会自动处理奇异矩阵(不可逆的矩阵)。
定义矩阵:
>> a=[1 2 3 4;5 6 7 8;8 9 2 5;1 2 4 5]
a =
1 2 3 4
5 6 7 8
8 9 2 5
1 2 4 5
一、单位矩阵使用eye
>> I = eye(4,4)
I =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
二、行列式判断
>> det(a)
ans =
8
三、行列式计算inv 、\ 、/、(矩阵)^-1
①、inv
>> inv(a)
ans =
-6.1250 -0.3750 0.5000 5.0000
6.8750 0.6250 -0.5000 -6.0000
2.6250 0.8750 -0.5000 -3.0000
-3.6250 -0.8750 0.5000 4.0000
②、\
>> a\I
ans =
-6.1250 -0.3750 0.5000 5.0000
6.8750 0.6250 -0.5000 -6.0000
2.6250 0.8750 -0.5000 -3.0000
-3.6250 -0.8750 0.5000 4.0000
③、/
>> I/a
ans =
-6.1250 -0.3750 0.5000 5.0000
6.8750 0.6250 -0.5000 -6.0000
2.6250 0.8750 -0.5000 -3.0000
-3.6250 -0.8750 0.5000 4.0000
④、(矩阵)^-1
>> a^-1
ans =
-6.1250 -0.3750 0.5000 5.0000
6.8750 0.6250 -0.5000 -6.0000
2.6250 0.8750 -0.5000 -3.0000
-3.6250 -0.8750 0.5000 4.0000