home *** CD-ROM | disk | FTP | other *** search
- tab1(no,a,ni,bl,bh,vmin,vmax,total,vmean,stdev,freq,iop)
-
- /* tabulate for a variable in an observation vector, the */
- /* frequency and percent frequency over given class intervals, */
- /* in addition, calculate the total, average, standard */
- /* deviation, minimum and maximum. */
-
- int iop,no,ni;
- float a[],bl,bh,*vmin,*vmax,*total,*vmean,*stdev,freq[];
-
- {
- int i,j,nimi;
- float che,sint,sos,t,tn,tno;
- extern double fabs(),sqrt();
-
-
- *vmin = 1.0e37;
- *vmax = -1.0e37;
-
- for(i = 0; i <= no-1; i++)
- {
- if((a[i] - *vmin) < 0.) *vmin = a[i];
- if((a[i] - *vmax) > 0.) *vmax = a[i];
- }
- tn = ni;
- sint = fabs(bh - bl)/(tn - 2.0);
-
- for(i = 0; i <= ni-1; i++) freq[i] = 0.;
-
- *total = 0.;
- sos = 0.;
- nimi = ni - 1;
-
- for(i = 1; i <= no; i++)
- {
- che = bl;
- for(j = 1; j <= nimi; j++)
- {
- if (a[i-1] < che) goto f10;
- che = che + sint;
- }
- freq[ni-1] = freq[ni-1] + 1.;
- goto f20;
- f10: freq[j-1] = freq[j-1] + 1.;
- f20: ;
- }
- tno = no;
- if (iop == 2)
- {
- for(i = 0; i <= ni-1; i++)
- freq[i] = freq[i] * 100.0 / tno;
- }
- for(i = 0; i <= no-1; i++)
- {
- *total = *total + a[i];
- sos = sos + (a[i]*a[i]);
- }
- *vmean = *total/tno;
- t = *total;
- *stdev = sqrt((sos - t*t/tno)/(tno - 1.));
- }