how to compute correlation coefficient without using any matlab functions Except the mean function?

how i can compute a correlation coefficient which accepts as input two arrays x and y of the same length representing the data sample and, returns their correlation coefficient (i loaded the x and y inputs as arrays). without using any matlab functions Except the mean function.

 Réponse acceptée

Using the Wikipedia definition of the Pearson product-moment correlation for a sample, this works:
x = randi(10,25,1); % Create Data
y = randi(10,25,1); % Create Data
xm = mean(x);
ym = mean(y);
[sxy,s2x,s2y] = deal(0,0,0);
for k1 = 1:length(x)
sxy = sxy + (x(k1)-xm)*(y(k1)-ym);
s2x = s2x + (x(k1)-xm)^2;
s2y = s2y + (y(k1)-ym)^2;
end
r = sxy / (sqrt(s2x)*sqrt(s2y));

Plus de réponses (0)

Catégories

En savoir plus sur Descriptive Statistics and Insights dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by