Effacer les filtres
Effacer les filtres

Why cov doesn't return a semi definite positive matrix ?

5 vues (au cours des 30 derniers jours)
Mayssa
Mayssa le 11 Mai 2017
Modifié(e) : Mayssa le 22 Mai 2017
I have a matrix of features and based on that, I need to compute a semi definite positive matrix (covariance matrix) for testing purposes, so I naturally used "cov" but when I tested the semidefinite positiveness of the output, results were not satisfying. Is there another function that can do the job ? or may be another way to compute the desired covariance matrix.
Thank you!
  1 commentaire
Mayssa
Mayssa le 22 Mai 2017
Modifié(e) : Mayssa le 22 Mai 2017
For those who may be interested, this can solve the problem: https://www.mathworks.com/matlabcentral/fileexchange/42885-nearestspd

Connectez-vous pour commenter.

Réponse acceptée

Matt J
Matt J le 11 Mai 2017
Modifié(e) : Matt J le 11 Mai 2017
The non-positive definiteness is probably due to floating point calculation errors. You cannot avoid this if your cov matrix is close to singular. Remove linearly dependent data from your covariance calculations. Or, just set eigenvalues below a certain threshold to zero.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by