void getE(double E[4][4],double u[4],double X[15][4])
{
//求协方差矩阵
int i,j,k;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
E[i][j]=0.0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
for(k=0;k<15;k++)
E[i][j]=E[i][j]+(X[k][i]-u[i])*(X[k][j]-u[j]);
E[i][j]=E[i][j]/(double)(n-1);
}
}
调用语句getE(e1,U1,X1);
U1[4]={5.08,3.56,1.5,0.2667};double X1[15][4];
{
//求协方差矩阵
int i,j,k;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
E[i][j]=0.0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
for(k=0;k<15;k++)
E[i][j]=E[i][j]+(X[k][i]-u[i])*(X[k][j]-u[j]);
E[i][j]=E[i][j]/(double)(n-1);
}
}
调用语句getE(e1,U1,X1);
U1[4]={5.08,3.56,1.5,0.2667};double X1[15][4];
40 5.1 3.4 1.5 0.2 1
22 5.1 3.7 1.5 0.4 1
34 5.5 4.2 1.4 0.2 1
35 4.9 3.1 1.5 0.2 1
6 5.4 3.9 1.7 0.4 1
3 4.7 3.2 1.3 0.2 1
16 5.7 4.4 1.5 0.4 1
11 5.4 3.7 1.5 0.2 1
30 4.7 3.2 1.6 0.2 1
45 5.1 3.8 1.9 0.4 1
33 5.2 4.1 1.5 0.1 1
7 4.6 3.4 1.4 0.3 1
38 4.9 3.6 1.4 0.1 1
42 4.5 2.3 1.3 0.3 1
这是我用的数据 每行第一个和最后一个数据不要 中间的四个就是X1的数据