From ce5e0a8f088e19e8ebe9a27d8efd4207363791af Mon Sep 17 00:00:00 2001 From: wukong Date: Fri, 15 Jun 2018 09:17:23 -0700 Subject: fixed row 1 header issue in diff.awk; other small adjustments in hamming and lin_reg --- conv.awk | 1 + diff.awk | 46 ++++++++++++++++++++++++++-------------------- diff1.awk | 1 + hamming.awk | 6 +++--- kalman.awk | 1 + kalman_init.awk | 1 + lin_reg.awk | 2 +- lin_reg1.awk | 1 + 8 files changed, 35 insertions(+), 24 deletions(-) diff --git a/conv.awk b/conv.awk index 2248927..b1e9e62 100644 --- a/conv.awk +++ b/conv.awk @@ -4,6 +4,7 @@ # [PoC] linear convolution (with hardcoded IR window). BEGIN { + OFMT = "%.9g" X = ARGV[1] input_size = split(X, X_arr) #H = "1.0 1.0 1.0" # rect diff --git a/diff.awk b/diff.awk index 6dc427d..fb93b57 100644 --- a/diff.awk +++ b/diff.awk @@ -4,6 +4,7 @@ # numerical diff along columns BEGIN { + OFMT = "%.9g" sign = "[+-]?" decimal = "[0-9]+[.]?[0-9]*" fraction = "[.][0-9]*" @@ -12,44 +13,49 @@ BEGIN { } NR == 1 { - header_nf = NF + ### orig columns for (n=1; n<=NF; n++) { - printf("%s", $n) - ($n !~ number) ? dheader[n] = "d" $n : dheader[n] = "dcol_" n + ($n !~ number) ? header[n] = $n : header[n] = "col" n + printf(header[n]) + ($n !~ number) ? dheader[n] = "d" $n : dheader[n] = "dcol" n if (n <= NF) - printf("%s", OFS) + printf(OFS) } + ### diff columns for (n=1; n<=NF; n++) { - printf("%s", dheader[n]) + printf(dheader[n]) if (n < NF) - printf("%s", OFS) + printf(OFS) } } -NF != 0 { - if (NF > max_nf) - max_nf = NF +NF { + if (NF > nf_max) + nf_max = NF - ### iterate over columns - for (y=1; y<=max_nf; y++) { - if (match(dheader[y], $y)) + ### orig columns + for (y=1; y<=nf_max; y++) { + if ($y == header[y] || $y == dheader[y]) continue if ($y ~ number) - printf("%g", $y) - if (y <= max_nf) - printf("%s", OFS) + printf($y) + else + printf("") + printf(OFS) } - for (y=1; y<=max_nf; y++) { + ### diff columns + for (y=1; y<=nf_max; y++) { if ($y ~ number) { data[y] = $y - (data_prev[y] ~ number) ? diff[y] = data[y] - data_prev[y] : diff[y] = "nan" + (data_prev[y] ~ number) ? diff[y] = data[y] - data_prev[y] : diff[y] = "" data_prev[y] = data[y] - printf("%g", diff[y]) - if (y < max_nf) - printf("%s", OFS) + printf(diff[y]) + if (y < nf_max) + printf(OFS) } + diff[y] = "" } printf("\n") } diff --git a/diff1.awk b/diff1.awk index cb86e00..42cc5a8 100644 --- a/diff1.awk +++ b/diff1.awk @@ -4,6 +4,7 @@ # numerical diff along columns BEGIN { + OFMT = "%.9g" sign = "[+-]?" decimal = "[0-9]+[.]?[0-9]*" fraction = "[.][0-9]*" diff --git a/hamming.awk b/hamming.awk index 21d241e..84dacd3 100644 --- a/hamming.awk +++ b/hamming.awk @@ -6,10 +6,10 @@ # 'a0' and 'a1' parameters of the raised cosine. BEGIN { - + OMFT = "%.9g" N = ARGV[1] - pi = 4*(4*atan2(1,5) - atan2(1,239)) + #a0 = (25.0/46.0) #a1 = (21.0/46.0) @@ -25,7 +25,7 @@ BEGIN { w[n] = a0 - a1*cos((2*pi*n)/(N - 1)) sum_w += w[n] } - printf("%g %g\n", w[n], 2.0*(w[n])/(N + 1)) + print 2.0*(w[n])/(N + 1) } } diff --git a/kalman.awk b/kalman.awk index f67e9de..41936e2 100644 --- a/kalman.awk +++ b/kalman.awk @@ -4,6 +4,7 @@ # simple linear regression between columns BEGIN { + OMFT = "%.9g" sign = "[+-]?" decimal = "[0-9]+[.]?[0-9]*" fraction = "[.][0-9]*" diff --git a/kalman_init.awk b/kalman_init.awk index f1dcac4..9e0cd14 100644 --- a/kalman_init.awk +++ b/kalman_init.awk @@ -4,6 +4,7 @@ # kalman csv experiemnt BEGIN { + OMFT = "%.9" sign = "[+-]?" decimal = "[0-9]+[.]?[0-9]*" fraction = "[.][0-9]*" diff --git a/lin_reg.awk b/lin_reg.awk index e1cb722..51f2e87 100644 --- a/lin_reg.awk +++ b/lin_reg.awk @@ -39,7 +39,7 @@ NF != 0 { sum_delta2[y] += delta[y]*delta[y] ### sample variance - (count[y] - 1) ? var[y] = sum_delta2[y]/(count[y] - 1) : var[y] = 0 + (count[y] > 1) ? var[y] = sum_delta2[y]/(count[y] - 1) : var[y] = 0 # x = row, y = col for (x=1; x<=max_nf; x++) { diff --git a/lin_reg1.awk b/lin_reg1.awk index de1189f..cd3db8e 100644 --- a/lin_reg1.awk +++ b/lin_reg1.awk @@ -4,6 +4,7 @@ # simple linear regression between individual text columns BEGIN { + OFS = "%.9g" sign = "[+-]?" decimal = "[0-9]+[.]?[0-9]*" fraction = "[.][0-9]*" -- cgit v1.2.3