📄 pat_io.big
字号:
/*# proc: write_bin_patterns - write features vectors and their classes (no tree)# proc: to a file for fast binary io.*/#include <stdio.h>#include <stdlib.h>#include <mfs.h>#define JUSTPATSFILE 0/***********************************************************************/write_bin_patterns(fn, feats, class, class_set, INPS, nPats,nInps,nOuts)char *fn;char **class_set;MFS *class;float *feats;int INPS; /* dimension of matrix >= length nInps */int nPats, nInps, nOuts;{float *featsptr, target;int i, j, n, nChars;int targ_typ = 0, idum = 0, tree = JUSTPATSFILE;int wsize, wisize, wosize;FILE *fp; if ((fp = fopen(fn, "wb")) == NULL) syserr("write_bin_patterns", fn, "fopen"); wsize = 24; if ((n = fwrite(&wsize, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "wsize1a fwrite"); if ((n = fwrite(&nPats, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "nPats fwrite"); if ((n = fwrite(&nInps, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "nInps fwrite"); if ((n = fwrite(&nOuts, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "nOuts fwrite"); if ((n = fwrite(&targ_typ, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "targ_typ fwrite"); if ((n = fwrite(&tree, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "dummy1 fwrite"); if ((n = fwrite(&idum, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "dummy2 fwrite"); if ((n = fwrite(&wsize, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "wsize1b fwrite"); wsize = 32*nOuts; if ((n = fwrite(&wsize, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "wsize2a fwrite"); for (i = 0; i < nOuts; i++) { nChars = strlen(class_set[i]); if ((n = fwrite(class_set[i], sizeof(char), nChars, fp)) != nChars) syserr("write_bin_patterns", fn, "string fwrite"); for(j = 0; j < (32 - nChars); j++) if ((n = fwrite("\0", sizeof(char), 1, fp)) != 1) syserr("write_bin_patterns", fn, "null fwrite"); } if ((n = fwrite(&wsize, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "wsize2b fwrite"); featsptr = feats; if (class->num < nPats) fatalerr("write_bin_patterns", fn, "less class ID's than patterns"); wisize = 4*nInps; wosize = 4*nOuts; for(i = 0; i < nPats ; i++) { if ((n = fwrite(&wisize, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "wsize3a fwrite"); if ((n = fwrite(featsptr, sizeof(float), nInps, fp)) != nInps) syserr("write_bin_patterns", fn, "feature vector fwrite"); featsptr += INPS; /* skip DAP space beyond length */ /* up to dimension */ if ((n = fwrite(&wisize, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "wsize3b fwrite"); if ((n = fwrite(&wosize, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "wsize4a fwrite"); for(j = 0; j < nOuts; j++) /* make a target vector */ { if(strcmp(class_set[j], class->values[i]) == 0) target = 1.0; else target = 0.0; if ((n = fwrite(&target, sizeof(float), 1, fp)) != 1) syserr("write_bin_patterns", fn, "target fwrite"); } if ((n = fwrite(&wosize, sizeof(int), 1, fp)) != 1) syserr("write_bin_patterns", fn, "wsize4b fwrite"); } fclose(fp);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -