Browse Source

write out appropriately eigenvectors, eigenvalues and percent importance (fixes trac https://trac.osgeo.org/grass/ticket/430)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@36525 15284696-431f-4ddb-bdfa-cd5b030d7da7
Markus Neteler 16 years ago
parent
commit
3324cc0b22
1 changed files with 10 additions and 7 deletions
  1. 10 7
      imagery/i.pca/support.c

+ 10 - 7
imagery/i.pca/support.c

@@ -49,16 +49,19 @@ static int write_history(int bands, char *outname, double **eigmat, double *eigv
     for (i = 0; i < bands; i++) {
 	char tmpeigen[256], tmpa[80];
 
-	sprintf(tmpeigen, "PC%d %9.2f ( ", i+1, eigval[i]);
+	sprintf(tmpeigen, "PC%d %9.2f (", i+1, eigval[i]);
 	for (j = 0; j < bands; j++) {
-	    sprintf(tmpa, "%5.2f ", eigmat[i][j]);
-	    strcat(tmpeigen, tmpa);
+	    sprintf(tmpa, "%7.4f", eigmat[i][j]);
+	    G_strcat(tmpeigen, tmpa);
+	    if (j < (bands - 1) ){
+		sprintf(tmpa, ",");
+		G_strcat(tmpeigen, tmpa);
+	    }
 	}
-
-	strcat(tmpeigen, ") ");
+	G_strcat(tmpeigen, ")");
 	
-	sprintf(tmpa, "[ %5.2f%% ]", eigval[i] * 100/eigval_total);
-	strcat(tmpeigen, tmpa);
+	sprintf(tmpa, "[%.2f%%]", eigval[i] * 100/eigval_total);
+	G_strcat(tmpeigen, tmpa);
 
 	sprintf(hist.edhist[i + 1], tmpeigen);