template<class C>
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:
|