协方差及计算代码
1 void cox(int x[],int y[],int n,double *p)
2 {
3 int i;
4 double averx,avery,sumx=0,sumy=0;
5 double sum=0;
6 for(i=0;i<n;i++)
7 {
8 sumx+=x[i];
9 sumy+=y[i];
10 }
11 averx=sumx/n;
12 avery=sumy/n;
13 for(i=0;i<n;i++)
14 sum+=(x[i]-averx)*(y[i]-avery);
15 *p=sum/n;//原文是除以(n-1)
16 }
2 {
3 int i;
4 double averx,avery,sumx=0,sumy=0;
5 double sum=0;
6 for(i=0;i<n;i++)
7 {
8 sumx+=x[i];
9 sumy+=y[i];
10 }
11 averx=sumx/n;
12 avery=sumy/n;
13 for(i=0;i<n;i++)
14 sum+=(x[i]-averx)*(y[i]-avery);
15 *p=sum/n;//原文是除以(n-1)
16 }
原文在最后除以(n-1),把数组的下标当作数组的长度了。
参考: 协方差计算的c语言代码
浙公网安备 33010602011771号