GRASS Programmer's Manual
6.4.2(2012)
|
00001 #include <grass/cluster.h> 00002 00003 /* compute sum of squares for each class */ 00004 int I_cluster_sum2(struct Cluster *C) 00005 { 00006 int p, band, class; 00007 double q; 00008 00009 /* 00010 fprintf (stderr, "I_cluster_sum2(npoints=%d,nclasses=%d,nbands=%d)\n", C->npoints, C->nclasses, C->nbands); 00011 */ 00012 for (class = 0; class < C->nclasses; class++) 00013 for (band = 0; band < C->nbands; band++) 00014 C->sum2[band][class] = 0; 00015 00016 for (p = 0; p < C->npoints; p++) { 00017 class = C->class[p]; 00018 if (class < 0) 00019 continue; 00020 for (band = 0; band < C->nbands; band++) { 00021 q = C->points[band][p]; 00022 C->sum2[band][class] += q * q; 00023 } 00024 } 00025 00026 return 0; 00027 }