Мне дали очень большую матрицу (я не могу изменить значения матрицы), и мне нужно вычислить инверсию (ковариационной) матрицы.
Иногда я получаю сообщение об ошибке
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, а затем использовать его для вычисления обратной ковариационной матрицы?