#include
#include
double calc_corr(int n,double* x,double* y);
double calc_mean(int n,double* y);
int main()
{
int n=8;
double x[] = {3,4,3,4,3,1,5,2};
double y[] = {2,4,3,5,1,4,4,3};
printf("corr = %lf\n",calc_corr(n,x,y));
return 0;
}
double calc_corr(int n,double* x,double* y)
{
int i;
double mx=calc_mean(n,x);
double my=calc_mean(n,y);
double xx=0,yy=0,xy=0,corr=0;
for(i=0;i<n;i++) xx+=pow(x[i]-mx,2);
xx = sqrt(xx);
for(i=0;i<n;i++) yy+=pow(y[i]-my,2);
yy = sqrt(yy);
for(i=0;i<n;i++) xy+=(x[i]-mx)*(y[i]-my);
corr = xy / (xx*yy);
return corr;
}
double calc_mean(int n,double* a)
{
int i;
double mean=0;
for(i=0;i<n;i++) mean += a[i];
mean/=n;
return mean;
}
|