det матрицы возвращает 0 в matlab

Мне дали очень большую матрицу (я не могу изменить значения матрицы), и мне нужно вычислить инверсию (ковариационной) матрицы.

Иногда я получаю сообщение об ошибке

 Matrix is close to singular or badly scaled.
     Results may be inaccurate

В этих ситуациях я вижу, что значение det возвращает 0.

Перед вычислением инверсии (ковариационной матрицы) я хочу проверить значение det и выполнить кое-что. вот так

covarianceFea=cov(fea_class);
covdet=det(covarianceFea);
if(covdet ==0)
    covdet=covdet+.00001;
    %calculate the covariance using this new det
end 

Есть ли способ использовать новый det, а затем использовать его для вычисления обратной ковариационной матрицы?

5
задан Amro 3 July 2013 в 15:47
поделиться