Sunday, June 20, 2010

read_vector_file

Digital Signal Processing Library

Voice Lab

read_vector_file


int read_vector_file(double ***vector, double **vector_data_ptr,\
int vector_width, int *number_vectors_max, char *file_name)
{
double y;
int number_vectors = 0;
int i, j, k;
FILE *input;

if((*number_vectors_max) == 0) (*number_vectors_max) = VECTOR_QUANTITY;

if((input = fopen(file_name,"rb")) == NULL) {
//printf("File not found\n");
exit(1);
} else {
//printf("File opened for reading\n");
}

/* allocate space for reading in the vectors */
matrix_allocate(&(*vector), &(*vector_data_ptr), vector_width, number_vectors_max);

do {
if(number_vectors == (*number_vectors_max)) {
/* increase maximum number of vectors permitted */
matrix_reallocate(&(*vector), &(*vector_data_ptr),\
vector_width, number_vectors_max);
}
k = 1;
/* read in the individual values for each vector */
for(j = 0; (j < vector_width) && (k == 1); j++) {
k = fscanf(input, "%lf", &y);
if(k == 1) {
(*vector)[number_vectors][j] = y;
}
}
if(k == 1) {
/* if vector read, bump counter */
number_vectors++;
}
} while(k == 1);

fclose(input);

return(number_vectors);
}



No comments:

Post a Comment