/*************************/ /* */ /* ko_class.c */ /* */ /* Alan Dix */ /* */ /* March 1993 */ /* */ /*************************/ #include #include "kohonen.h" #ifdef ANSI int classify_code( data_p data, code_p code ); #else int classify_code(); #endif char *use = "usage: ko_class data code\n\ data - file containing training data\n\ code - file containing network (code book)"; void usage() { fprintf(stderr,"usage: %s\n",use); exit(1); } main(argc,argv) int argc; char **argv; { int ac; char **av; data_p data; code_p code; ac = argc-1; av = argv+1; if ( ac != 2 ) usage(); data = read_data_file("data file",av[0]); code = read_code_file("code book",av[1]); if ( classify_code(data,code) < 0 ) { fprintf(stderr,"error in classifying\n"); exit(1); } return 0; } int classify_code(data,code) data_p data; code_p code; { int i; if ( data->wid != code->wid ) return -1; for ( i=0; ilen; i++ ) { int x,y; double d = find_closest_code(data->val[i],&x,&y,code); write_vec(stdout,data->val[i],data->wid); fprintf( stdout, "%8s -> [ %2d %2d ] %8s\n", data->labels[i], x, y, code->labels[x][y] ); } return 1; }