Le Coefficient de Pearson et de la Covariance de calcul sous Matlab

Je veux calculer Coefficient de corrélation de Pearson dans Matlab (sans l'aide de Matlab corr fonction).

Simplement, j'ai deux vecteurs A et B (chacun d'eux est 1x100) et je suis en train de calculer le coefficient de Pearson comme ceci:

P = cov(x, y)/std(x, 1)std(y,1)

Je suis à l'aide de Matlab cov et std fonctions. Ce que je ne comprends pas est, les cov fonction me renvoie une matrice carrée comme ceci:

corrAB =
    0.8000    0.2000
    0.2000    4.8000

Mais je m'attends à un numéro unique comme la covariance donc, je peux venir avec un seul P (coefficient de pearson). Quel est le point que je suis absent?

Voulez-vous dire P = cov(x,y)/sqrt(var(x)*var(y));? La diagonale doit être de 1. Le hors diagonale est ce que vous voulez.
vous avez raison, j'ai mis à jour la question. Est la "hors de la diagonale" dans l'exemple ci-dessus sont 0.2000 et 0.2000? Dois-je donc faire un autre calcul avec eux ou tout simplement aller avec 0,2?
Tu t'en es exemple, 0,2 est hors de la diagonale. Cependant, l'0,8 et 4.8 devrait à la fois être 1. Si quelque chose est incorrect avec votre calc. Il suffit de ne corr(x,y) pour vérifier. Lire l'aider à comprendre pourquoi il retourne une matrice. C'était inattendu pour moi la première fois également.
Mes tableaux sont comme suit: x =[4 5 5 3 5], y = [4 4 0 0 0]. Peut-être à cause de cela, il y a des valeurs comme 4.8. Je vais lire les docs, merci.
les diagonales n'a pas besoin d'être 1. La sera 1 que si les variances des deux échantillons sont exactement les mêmes.

OriginalL'auteur Ramala | 2011-04-13