避免matlab中的矩阵逆警告

时间:2013-01-30 14:05:04

标签: matlab matrix matrix-inverse

我正在使用6x6矩阵,这些矩阵具有不同的数据精度。当我尝试在MATLAB中反转该矩阵时,我通常得到InfNaN,因为所有数据和MATLAB都会发出警告:

  

Matrix的工作精度非常高。

无论如何都要避免它并获得正确的结果?

1 个答案:

答案 0 :(得分:2)

你的矩阵似乎排名不足。只有满秩矩阵才能被强制反转 您可以通过向原始矩阵添加一个小的单位矩阵来规避您的问题。

 A = rand(6,5);
 A = A*A'; %' symmetric rank 5 matrix
 iA = inv(A); % results with NaNs and infs A is singular
 iAs = inv( A + eye(6)*1e-3 ); % add small (1e-3) elements to diagonal - this should help