Ellipse autour des données dans MATLAB
Je voudrais reproduire la figure suivante dans MATLAB:
Il y a deux classes de points avec des coordonnées X et Y. Je tiens à entourer chaque classe avec une ellipse avec un paramètre d'écart-type, qui permet de déterminer dans quelle mesure l'ellipse va aller le long de l'axe.
La figure a été créé avec un autre logiciel et je n'ai pas de comprendre exactement comment il calcule l'ellipse.
Voici les données que j'utilise pour cette figure. La 1ère colonne est classe, 2e - X, 3e - Y. je peux utiliser gscatter
dessiner les points.
A = [
0 0.89287 1.54987
0 0.69933 1.81970
0 0.84022 1.28598
0 0.79523 1.16012
0 0.61266 1.12835
0 0.39950 0.37942
0 0.54807 1.66173
0 0.50882 1.43175
0 0.68840 1.58589
0 0.59572 1.29311
1 1.00787 1.09905
1 1.23724 0.98834
1 1.02175 0.67245
1 0.88458 0.36003
1 0.66582 1.22097
1 1.24408 0.59735
1 1.03421 0.88595
1 1.66279 0.84183
];
gscatter(A(:,2),A(:,3),A(:,1))
Pour info, ici est la question sur la façon de dessiner une ellipse. Donc, nous avons juste besoin de connaître tous les paramètres de la dessiner.
Mise à jour:
Je suis d'accord que le centre peut être calculé comme le moyen de coordonnées X et Y. J'ai probablement d'utiliser l'analyse en composantes principales (PRINCOMP
) pour chaque classe afin de déterminer l'angle et la forme. Toujours en pensant...
source d'informationauteur yuk
Vous devez vous connecter pour publier un commentaire.
Examiner le code:
MODIFIER
Si vous voulez l'ellipse pour représenter un niveau spécifique de l'écart-type, la bonne façon de le faire est par la mise à l'échelle de la matrice de covariance:
Je vais essayer la méthode suivante:
Je vais supposer qu'il y a un seul ensemble de points de données dans une seule matrice, par exemple
vous pouvez reproduire cette procédure pour chaque ensemble de données.
mean
bsxfun
eig
Les différentes étapes sont illustrées ci-dessous:
Les colonnes de AX contiennent les vecteurs décrivant les axes principaux de l'ellipsoïde, tandis que la diagonale de MAG contient des informations sur leur ampleur.
Pour tracer l'ellipsoïde, à l'échelle de chaque axe principal avec la racine carrée de sa grandeur.
Espère que cette aide.
A.