我正在使用6x6矩阵,这些矩阵具有不同的数据精度。当我尝试在MATLAB中反转该矩阵时,我通常得到Inf
或NaN
,因为所有数据和MATLAB都会发出警告:
Matrix的工作精度非常高。
无论如何都要避免它并获得正确的结果?
答案 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