home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.disi.unige.it
/
2015-02-11.ftp.disi.unige.it.tar
/
ftp.disi.unige.it
/
pub
/
.person
/
BarlaA
/
sw
/
OLD
/
Simo
/
SVM_mono
/
training.c
< prev
Wrap
C/C++ Source or Header
|
2002-06-25
|
2KB
|
73 lines
#include <stdio.h>
#include <stdlib.h>
#include "patt_rec.h"
extern int dim;
extern int ell;
extern int one_out, one_out_flag;
training *read_training(FILE *fp1)
{
register i, j, k;
int l1, dim1;
double value;
training *tr;
Point *points, *curr_point;
double *vect , *out_vect;
FILE *f;
fscanf(fp1, "%d", &l1);
fscanf(fp1, "%d", &dim1);
fprintf(stderr, "reading %d %d-d data...\n", l1, dim1);
if (one_out_flag) fprintf(stderr,"of which the %d-th is left out \n", one_out);
fprintf(stderr,"training one_out %d one_out_flag %d\n",one_out,one_out_flag);
ell = l1 ;
if (one_out_flag)
ell = l1-1;
else one_out = -1;
dim = dim1;
tr = (training *) myalloc(NULL, sizeof(training), "read_training: tr\n");
points = (Point *) myalloc(NULL, ell*sizeof(Point), "read_training: points\n");
k=0;
for (i = 0; i < l1; i++)
{
if ((!one_out_flag) || (i != one_out)) {
curr_point = points + k;
vect = (double *) myalloc(NULL, dim*sizeof(double), "read_training: vect\n");
for (j = 0; j < dim; j++)
fscanf(fp1, "%lf", vect + j);
curr_point->vect = vect;
curr_point->class = 1;
fprintf(stderr,"%d ",i);
k++;
}
else {
fprintf(stderr,"\n OUT %d\n",i);
f = fopen("test","w");
fprintf(f,"%d %d\n",1,dim);
out_vect = (double *)malloc(sizeof(double)*dim);
for (j = 0; j < dim; j++) {
fscanf(fp1, "%lf", out_vect + j);
fprintf(f, "%lf ", out_vect[j]);
}
fclose(f);
}
}
tr->ell = ell;
tr->dim = dim;
tr->points = points;
fprintf(stderr, "done\n");
return tr;
}