"Smoothing" the data


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers "Smoothing" the data
# 15  
Old 02-22-2012
Thank you for the help Smilie
I tried to apply it to a larger scale but I think I am missing something...
What I am trying to do is instead of taking the average of every 3 points, I am taking the average of every 23 points (and skipping 11 points)...
I changed this part :
Code:
BEGIN { WIDTH=3; OFS="\t" }

to

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

but I think there is one more thing that needs to be changed (maybe in
OFS="\t" to skip 11 points not just one... any suggestions?

Thanks
# 16  
Old 02-22-2012
The OFS is just to make it print in nicely tabbed columns, WIDTH is all you need to change. I made everything depend on WIDTH even though that was slightly awkward just to keep things obvious...

It detects the number of columns by itself, via the NF special variable. Each column is calculated independently.
# 17  
Old 02-22-2012
When I use this set of numbers:

Code:
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
3009.200
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
3016.400
3016.700
3017.000
3017.300
3017.600
3017.900
3018.200
3018.500
3018.800
3019.100
3019.400
3019.700
3020.000
3020.300
3020.600
3020.900
3021.200
3021.500
3021.800
3022.100
3022.400
3022.700
3023.000
3023.300
3023.600
3023.900
3024.200
3024.500
3024.800
3025.100
3025.400
3025.700
3026.000
3026.300
3026.600

I expect the output:

Code:
3005.600
3009.200
3012.800
3016.400
3020.000
3023.600

But I get:

Code:
3005.6
3012.2
3018.8

# 18  
Old 02-22-2012
The question, really, is why you expect a different number of numbers, not the numbers you got... Just pasting it, as if it's obvious, doesn't help.

awk deals with numbers as floating point numbers, not text, so doesn't give you any particular number of decimal places unless you ask for a particular number of decimal places.

Code:
BEGIN { WIDTH=3; OFS="\t" }

{
        N++;
        for(M=1; M<=NF; M++)    DATA[M,N%WIDTH]=$M
}

(N>=WIDTH) && !((N-WIDTH)%(WIDTH-1)) {

        for(M=1; M<=NF; M++)
        {
                $M=0

                for(X=(N+1); X<=(N+WIDTH); X++)
                        $M+=DATA[M,X%WIDTH];

                # Print to 3 decimals of precision
                $M =sprintf("%.3f", $M/WIDTH);
        }

        print
}


Last edited by Corona688; 02-22-2012 at 06:45 PM..
# 19  
Old 02-22-2012
I didn't mean the decimals, but the actual numbers:

3005.600 3009.200 3012.800

and

3005.6 3012.2 3018.8
# 20  
Old 02-22-2012
Yesssssssssssssss... And the issue, again, is why you think it should be those numbers. Smilie

What calculation arrived at your numbers?

I only see three different sets of 23 numbers in that file:

Code:
01      3002.300
02      3002.600
03      3002.900
04      3003.200
05      3003.500
06      3003.800
07      3004.100
08      3004.400
09      3004.700
10      3005.000
11      3005.300
12      3005.600
13      3005.900
14      3006.200
15      3006.500
16      3006.800
17      3007.100
18      3007.400
19      3007.700
20      3008.000
21      3008.300
22      3008.600
23      3008.900

01      3008.900
02      3009.200
03      3009.500
04      3009.800
05      3010.100
06      3010.400
07      3010.700
08      3011.000
09      3011.300
10      3011.600
11      3011.900
12      3012.200
13      3012.500
14      3012.800
15      3013.100
16      3013.400
17      3013.700
18      3014.000
19      3014.300
20      3014.600
21      3014.900
22      3015.200
23      3015.500

01      3015.500
02      3015.800
03      3016.100
04      3016.400
05      3016.700
06      3017.000
07      3017.300
08      3017.600
09      3017.900
10      3018.200
11      3018.500
12      3018.800
13      3019.100
14      3019.400
15      3019.700
16      3020.000
17      3020.300
18      3020.600
19      3020.900
20      3021.200
21      3021.500
22      3021.800
23      3022.100

...and calculated them the way you showed, splitting into different sets, with the first and last numbers overlapping... Is there supposed to be more overlap in a larger set?
# 21  
Old 02-22-2012
Hi.

I have no idea what is expected, hence I am unsubscribing from this thread ... cheers, drl
 
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