"Smoothing" the data


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers "Smoothing" the data
# 22  
Old 02-22-2012
I brute-forced 10,000 different sets of numbers to find the three sums which exactly match yours:

Code:
Hunting for 3005.6
01-23(23) for 3005.6

        3002.300        3002.600        3002.900        3003.200
        3003.500        3003.800        3004.100        3004.400
        3004.700        3005.000        3005.300        3005.600
        3005.900        3006.200        3006.500        3006.800
        3007.100        3007.400        3007.700        3008.000
        3008.300        3008.600        3008.900

Hunting for 3009.2
13-35(23) for 3009.2

        3005.900        3006.200        3006.500        3006.800
        3007.100        3007.400        3007.700        3008.000
        3008.300        3008.600        3008.900        3009.200
        3009.500        3009.800        3010.100        3010.400
        3010.700        3011.000        3011.300        3011.600
        3011.900        3012.200        3012.500

Hunting for 3012.8
25-47(23) for 3012.8

        3009.500        3009.800        3010.100        3010.400
        3010.700        3011.000        3011.300        3011.600
        3011.900        3012.200        3012.500        3012.800
        3013.100        3013.400        3013.700        3014.000
        3014.300        3014.600        3014.900        3015.200
        3015.500        3015.800        3016.100

9963 tries

Now I have a starting point at least

---------- Post updated at 06:40 PM ---------- Previous update was at 06:06 PM ----------

Code:
$ cat smooth3.awk

BEGIN {
        OFS="\t"
        WIDTH=23;

        # I THINK this will get the right amount of overlap
        # numbers for any WIDTH.  If it doesn't, ditch it and
        # and set OVERLAP to a value.
        if(WIDTH % 2)   OVERLAP=(WIDTH-1)/2;
        else            OVERLAP=(WIDTH/2);
}

{
        N++;    READY++;
        for(X=1; X<=NF; X++)    NUM[X,N%WIDTH]=$1
}

READY >= WIDTH {
        for(X=1; X<=NF; X++)
        {
                $X=0
                for(C=0; C<WIDTH; C++)  $X += NUM[X,(C+N)%WIDTH];
                $X /= WIDTH;
        }

        print

        # Wait (WIDTH-OVERLAP) rows before averaging the last WIDTH rows again
        READY -= (WIDTH-OVERLAP);
}

$ awk -f smooth3.awk data2

3005.6
3009.2
3012.8
3016.4
3020

$

I don't know why your result set cuts off after 3 numbers when there's enough data for 5 boxcars, but the numbers are now what you want.
# 23  
Old 02-22-2012
Your last solution worked on that set of data Smilie Thank you Smilie

I have one last question about this... If I want to run this on more than one column (about 75 or more), how can I apply it?
When I try the code as it is now it gives a duplication of the same column with the same values (as the first column).

Last edited by cosmologist; 02-23-2012 at 12:07 AM..
# 24  
Old 02-23-2012
It does? That's a bug. Muttermuttergrumble. Working on it.

---------- Post updated at 10:19 PM ---------- Previous update was at 10:17 PM ----------

What a difference one letter makes...

Code:
BEGIN {
        OFS="\t"
        WIDTH=23;

        # I THINK this will get the right amount of overlap
        # numbers for any WIDTH.  If it doesn't, ditch it and
        # and set OVERLAP to a value.
        if(WIDTH % 2)   OVERLAP=(WIDTH-1)/2;
        else            OVERLAP=(WIDTH/2);
}

{
        N++;    READY++;
        for(X=1; X<=NF; X++)    NUM[X,N%WIDTH]=$X
}

READY >= WIDTH {
        for(X=1; X<=NF; X++)
        {
                $X=0
                for(C=0; C<WIDTH; C++)  $X += NUM[X,(C+N)%WIDTH];
                $X /= WIDTH;
        }

        print

        # Wait (WIDTH-OVERLAP) rows before averaging the last WIDTH rows again
        READY -= (WIDTH-OVERLAP);
}

This User Gave Thanks to Corona688 For This Post:
# 25  
Old 02-23-2012
Looks great now Smilie Thank you very much!
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

5. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

6. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

7. Shell Programming and Scripting

ps -ef | grep "string1" "string2" " "string3"

Hi all, can any one suggest me the script to grep multiple strings from ps -ef pls correct the below script . its not working/ i want to print OK if all the below process are running in my solaris system. else i want to print NOT OK. bash-3.00$ ps -ef | grep blu lscpusr 48 42 ... (11 Replies)
Discussion started by: steve2216
11 Replies

8. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

9. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies
Login or Register to Ask a Question