diff options
Diffstat (limited to '')
| -rw-r--r-- | kalman_init.awk | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/kalman_init.awk b/kalman_init.awk index 331d99a..f1dcac4 100644 --- a/kalman_init.awk +++ b/kalman_init.awk @@ -1,4 +1,4 @@ -#!/usr/bin/awk +#!/usr/bin/awk -f ### kalman.awk # kalman csv experiemnt @@ -14,10 +14,7 @@ BEGIN { NR == 1 { header_nf = NF for (n=1; n<=NF; n++) { - if ($n !~ number) - header[n] = "d" $n - else - header[n] = "col_" n + ($n !~ number) ? header[n] = "d" $n : header[n] = "col_" n } } @@ -34,19 +31,13 @@ NF != 0 { diff[n] = $n - last[n] diff2[n] = 0.5*($n - 2.0*last[n] + last2[n]) sum[n] = $n + last[n] + last2[n] - if (count[n]) - mean[n] = sum[n]/count[n] - else - mean[n] = sum[n] + (count[n]) ? mean[n] = sum[n]/count[n] : mean[n] = sum[n] delta[n] = $n - mean[n] delta2[n] = delta[n]*delta[n] sum_delta[n] = delta[n] + delta_last[n] + delta_last2[n] sum_delta2[n] = delta2[n] + delta2_last[n] + delta2_last2[n] - if (count[n] > 1) - var[n] = sum_delta2[n]/(count[n] - 1) - else - var[n] = 0 + (count[n] > 1) ? var[n] = sum_delta2[n]/(count[n] - 1) : var[n] = 0 if (count[n]) { meas_err[n] = sqrt(var[n]/count[n]) @@ -57,10 +48,7 @@ NF != 0 { count[m,n]++ sum_xy[m,n] += 1 delta_xy[m,n] = delta[m]*delta[n] - if (count[m,n] > 1) - meas_cov[m,n] = delta[m]*delta[n]/(count[m,n] - 1) - else - meas_cov[m,n] = 0 + (count[m,n] > 1) ? meas_cov[m,n] = delta[m]*delta[n]/(count[m,n] - 1) : meas_cov[m,n] = 0 est_err_last_cov[m,n] = 1 print meas_cov[m,n], est_err_last_cov[m,n] } |
