diff options
Diffstat (limited to '')
| -rw-r--r-- | cov.awk | 2 | ||||
| -rw-r--r-- | diff.awk | 4 | ||||
| -rw-r--r-- | diff1.awk | 2 | ||||
| -rw-r--r-- | kalman.awk | 4 | ||||
| -rw-r--r-- | kalman_init.awk | 14 | ||||
| -rw-r--r-- | lin_reg.awk | 10 | ||||
| -rw-r--r-- | lin_reg1.awk | 4 | ||||
| -rw-r--r-- | lin_reg2.awk | 4 | ||||
| -rw-r--r-- | mean.awk | 2 | ||||
| -rw-r--r-- | mean_avg.awk | 2 | ||||
| -rw-r--r-- | sum1.awk | 2 | ||||
| -rw-r--r-- | sum2.awk | 2 | ||||
| -rw-r--r-- | sum4.awk | 7 |
13 files changed, 30 insertions, 29 deletions
@@ -52,7 +52,7 @@ END { printf(header[y] OFS) ### rows for (x=1; x<=nf_max; x++) { - printf("%.18g", cov_samp[x,y]) + printf(OFMT, cov_samp[x,y]) if (x < nf_max) printf(OFS) } @@ -44,7 +44,7 @@ NF { if ($y == header[y] || $y == dheader[y]) continue if ($y ~ number) - printf("%.18g", $y) + printf(OFMT, $y) else printf("") printf(OFS) @@ -58,7 +58,7 @@ NF { data[y] = $y (data_prev[y] ~ number) ? diff[y] = data[y] - data_prev[y] : diff[y] = "" data_prev[y] = data[y] - printf("%.18g", diff[y]) + printf(OFMT, diff[y]) } else diff[y] = "" @@ -41,7 +41,7 @@ NF { data[y] = $y (data_prev[y] ~ number) ? diff[y] = data[y] - data_prev[y] : diff[y] = "" data_prev[y] = data[y] - printf("%.18g", diff[y]) + printf(OFMT, diff[y]) } else diff[y] = "" @@ -1,6 +1,6 @@ #!/usr/bin/awk -f -### lin_reg.awk +### kalman.awk # simple linear regression between columns BEGIN { @@ -98,7 +98,7 @@ END { for (y=1; y<=max_nf; y++) { for (x=1; x<=max_nf; x++) { if (x != y && r[x,y]) { - printf("\n %.18g %.18g \t (%s) \t = (%.18g +/- %.18g)(%s) \t + (%.18g +/- %.18g)", + printf(OFMT OFS OFMT OFS "(%s)" OFS " = (" OFMT " +/- " OFMT ")(%s)" OFS " + (" OFMT " +/- " OFMT ")"ORS, meas_cov[x,y], est_err_cov[x,y], header[y], b[x,y], b_err[x,y], header[x], a[x,y], a_err[x,y]) } diff --git a/kalman_init.awk b/kalman_init.awk index 0ed72a6..0321c4d 100644 --- a/kalman_init.awk +++ b/kalman_init.awk @@ -20,8 +20,7 @@ NR == 1 { } NF != 0 { - #print "\n" - print "\n" NR ": \t" $0 + print ORS NR ":" OFS $0 ORS if (NF > max_nf) max_nf = NF @@ -68,11 +67,12 @@ NF != 0 { est_err[n] = (1.0 - KG[n])*est_err_last[n] ### visual check - printf "meas: \t%.18g %.18g %.18g", $n, meas_err[n], count[n] - printf "\nd1: \t%.18g", diff[n] - printf "\nd2: \t%.18g", diff2[n] - printf "\nest: \t%.18g %.18g %.18g", est[n], est_err[n], KG[n] + printf "meas: " OFS OFMT OFS OFMT OFS OFMT, $n, meas_err[n], count[n] + printf "d1: " OFS OFMT, diff[n] + printf "d2: " OFS OFMT, diff2[n] + printf "est: " OFS OFMT OFS OFMT OFS OFMT, est[n], est_err[n], KG[n] + ### update previously remembered values last2[n] = last[n] last[n] = $n diff_last2[n] = diff_last[n] @@ -83,7 +83,7 @@ NF != 0 { delta2_last[n] = delta2[n] est_last[n] = est[n] est_error_last[n] = est_error[n] - printf "\n" + printf ORS } } } diff --git a/lin_reg.awk b/lin_reg.awk index 56114a2..0e51266 100644 --- a/lin_reg.awk +++ b/lin_reg.awk @@ -4,7 +4,7 @@ # simple linear regression between columns BEGIN { - OFMT = "%.18g" + OFMT = "%.9g" sign = "[+-]?" decimal = "[0-9]+[.]?[0-9]*" fraction = "[.][0-9]*" @@ -23,6 +23,8 @@ NF > 0 { ### iterate over columns for (y=1; y<=nf_max; y++) { + if ($y == header[n]) + continue if ($y ~ number) { ### mean @@ -42,10 +44,10 @@ NF > 0 { for (x=1; x<=nf_max; x++) { count[x,y] += 1 sum_xy[x,y] += $x*$y - sum_delta_xy[x,y] += delta[x]*delta[y] + sum_delta_xy[x,y] += delta0[x]*delta1[y] # covariance - #(count[x,y] > 1) ? cov[x,y] = sum_delta_xy[x,y]/(count[x,y] - 1) : cov[x,y] = "" + (count[x,y] > 1) ? cov[x,y] = sum_delta_xy[x,y]/(count[x,y] - 1) : cov[x,y] = "" # correlation r_den[x,y] = sqrt(sum_delta2[x]*sum_delta2[y]) @@ -84,7 +86,7 @@ END { for (y=1; y<=nf_max; y++) { for (x=1; x<=nf_max; x++) { if (x != y && r[x,y]) { - printf("%.9g "OFS" (%s) "OFS" = (%.9g +/- %.9g)(%s) "OFS" + (%.9g +/- %.9g)%s", + printf(OFMT OFS "(%s)" OFS " = (" OFMT " +/- " OFMT ")(%s)" OFS " + (" OFMT " +/- "OFMT ")%s", 10.0*log(r[x,y]*r[x,y])/log(10.0), header[y], b[x,y], b_err[x,y], header[x], a[x,y], a_err[x,y], ORS) } diff --git a/lin_reg1.awk b/lin_reg1.awk index 8b03e2f..776a370 100644 --- a/lin_reg1.awk +++ b/lin_reg1.awk @@ -67,8 +67,8 @@ END { for (x=1; x<=nf_max; x++) { if (x != y && r[x,y]) { r2[x,y] = r[x,y]*r[x,y] - printf("\n %.18g \t (%s) \t = %.18g(%s) \t + %.18g", - 10.0*log(r2[x,y])/log(10), header[y], b[x,y], header[x], a[x,y]) + printf(OFMT OFS "(%s)" OFS " = " OFMT "(%s)" OFS " + " OFMT ORS, + 10.0*log(r2[x,y])/log(10.0), header[y], b[x,y], header[x], a[x,y]) } } } diff --git a/lin_reg2.awk b/lin_reg2.awk index 7c00fe8..ef0fe57 100644 --- a/lin_reg2.awk +++ b/lin_reg2.awk @@ -4,7 +4,7 @@ # simple linear regression between columns BEGIN { - OFMT = "%.18g" + OFMT = "%.8g" sign = "[+-]?" decimal = "[0-9]+[.]?[0-9]*" fraction = "[.][0-9]*" @@ -82,7 +82,7 @@ END { for (y=1; y<=nf_max; y++) { for (x=1; x<=nf_max; x++) { if (x != y && r[x,y]) { - printf("\n %.18g \t (%s) \t = (%.18g +/- %.18g)(%s) \t + (%.18g +/- %.18g)", + printf(OFMT OFS "(%s)" OFS " = (" OFMT " +/- " OFMT ")(%s)" OFS " + (" OFMT " +/- " OFMT ")" ORS, 10.0*log(r[x,y]*r[x,y])/log(10), header[y], b[x,y], b_err[x,y], header[x], a[x,y], a_err[x,y]) } @@ -4,7 +4,7 @@ # calculate mean average
BEGIN {
- OFMT = "%.18g"
+ #OFMT = "%.18g"
sign = "[+-±]?"
decimal = "[0-9]+[.]?[0-9]*"
fraction = "[.][0-9]*"
diff --git a/mean_avg.awk b/mean_avg.awk index 565dcc2..0d61558 100644 --- a/mean_avg.awk +++ b/mean_avg.awk @@ -4,7 +4,7 @@ # average columns of numerical data BEGIN { - OFMT = "%.18g" + #OFMT = "%.18g" #sign = "[+-]?" #decimal = "[0-9]+[.]?[0-9]*" #fraction = "[.][0-9]*" @@ -14,7 +14,7 @@ END { for (i=1; i<=nf_max; i++) { - printf("%.18g", sum[i]) + printf(OFMT, sum[i]) printf((i < nf_max) ? OFS : ORS) } } @@ -14,5 +14,5 @@ NR==1 { nf_max = NF } END { for (i=1; i<=NF; i++) - printf("%.18g%s", sum[i], i < nf_max ? OFS : ORS) + printf(OFMT "%s", sum[i], i < nf_max ? OFS : ORS) } @@ -5,7 +5,7 @@ # output: sums of numeric columns function isnum(n) { - OFMT = "%.18g" + #OFMT = "%.18g" sign = "[+-]?" decimal = "[0-9]+[.]?[0-9]*" fraction = "[.][0-9]+" @@ -31,8 +31,7 @@ NR==1 { END { for (i=1; i<=nf_max; i++) { if (header[i]) - printf("%s: \t", header[i]) - printf("%.18g\n", sum[i]) - printf(i < nf_max ? "" : OFS ) + printf("%s:" OFS, header[i]) + printf(OFMT ORS, sum[i]) } } |
