Home || Visual Search || Applications || Architecture || Important Messages || OGL || Src

template<class C>
MatrixTem< C > Impala::Core::Matrix::MatrixTem< C >::covariance ( VectorTem< C > &  mean  )  const

Calculate covariance matrix.

Definition at line 588 of file MatrixTem.h.

References Impala::Core::Matrix::MatrixTem< C >::_nc, Impala::Core::Matrix::MatrixTem< C >::_nr, and Impala::Core::Matrix::MatrixTem< C >::i().

Referenced by Impala::Application::Im::DoMatrix(), Impala::Core::Array::extractRegions(), Impala::Core::Array::refinery(), and Impala::Core::Array::rgmerge().

00589 {
00590 //      printf("Calculating the covariance matrix...");
00591         int i,j,k;
00592 
00593         MatrixTem<C> COVxy(_nc,_nc, 0.0) ;
00594 
00595         mean = VectorTem<C>(_nc) ; //means
00596         for (i=0; i<_nc; i++) mean[i] = 0;
00597 
00598         for (k=0; k<_nr; k++)
00599                 for (i=0; i<_nc; i++) {
00600                         mean[i] += (*this)[k][i];
00601                         for (j=i; j<_nc; j++)
00602                                 COVxy[i][j] += ((*this)[k][i] * (*this)[k][j]) ;
00603                 }
00604 
00605         for (i=0; i<_nc; i++) mean[i] /= _nr;
00606 
00607         for (i=0; i<_nc; i++)
00608                 for (j=i; j<_nc; j++) {
00609                         COVxy[i][j] = COVxy[i][j]/_nr - mean[i]*mean[j];
00610                         COVxy[j][i] = COVxy[i][j];
00611                 }
00612 
00613 //      printf("...done\n");
00614         return COVxy;
00615 }

Here is the call graph for this function:


Generated on Thu Jan 13 09:20:21 2011 for ImpalaSrc by  doxygen 1.5.1