/** read sekibunkyu CAL output data **/ /** calculate average & standard deviation **/ /** 2013.12/19 by Akira Kadokura **/ #include #include #include #include static char in_dir[] ="/home/aurora/syowa_SPM/CAL_data/IntegrationSphere_CAL"; main(argc,argv) int argc; char *argv[]; { FILE *fin,*fout,*fopen(); char fin_name[100],fout_name[100]; char chead[255],ctime[18],cdat[10]; float dat[2000]; int i,imax,n,ns,ne; double sum,ave,std; /******************/ if(argc != 4){ printf("Please key-in (e.g. rdsekibunkyuCAL (directory name & file name) (read start #) (read end #)\n"); exit(0); }; ns = atoi(argv[2]); ne = atoi(argv[3]); sprintf(fin_name,"%s/%s",in_dir,argv[1]); fin = fopen(fin_name,"r"); if(fin==0){ printf("%s does not exist !!\n",fin_name); exit(0); }; printf("Data:%s\n",argv[1]); /** dummy read **/ while(1){ fgets(chead,255,fin); if(chead[3]==':' && chead[6]==':') break; }; /** read time & output (V) data **/ /** calculate average **/ i=-1; n=1; sum=0.0; while(fgets(chead,255,fin)!=NULL){ ++n; if(nne) break; sscanf(chead,"%17s,%s",ctime,cdat); ++i; dat[i] = atof(cdat); sum += dat[i]; }; imax = i+1; ave = sum/(double)imax; printf("imax:%d sum:%f ave:%f\n",imax,sum,ave); /** calculate standard deviation **/ sum = 0.0; for(i=0;i