Post

Mean values


Code to take the average from samples from a file with them all. Use after merging everything with calcular_media.sh. Can be used to take averages in the equilibrium and also to take a time evolution average.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Comments:
#
# Tira a media de dados com ate 3 parametros que estão no mesmo arquivo e os parametros iguais estao em sequencia

# se plotar com virgular escrever no terminal: export LC_NUMERIC="en_US.UTF-8"
# se tiver que usar menos parametros botar o inicial e final no fixo que ta no arquivo

#usar uma vez dentro do calcular_media.sh para juntar as evoluçoes em um mesmo arquivo
#usar denovo nesse novo arquivo com todas evoluçoes para tirar media

BEGIN{
i=1;
parametro1_inicial = 0;
parametro1_final = 99999;
parametro1_var = 1;

a = 0.0
parametro2_inicial = a;
parametro2_final = a; # tem que botar uma variaçao a mais do que o valor maximo (?)
parametro2_var = 0.1;

b = 0.0
parametro3_inicial = b;
parametro3_final = b;
parametro3_var = 1.0;

}

{
# If not a comment, read record: 
 #if ($1 !~ /#/)
    #{

	parametro1 = $1 + 0;
    	parametro2 = 0 + 0;  #quando usar em evoluçao temporal mudar esse valor para zero
    	parametro3 = 0 + 0;
	for(j=1;j<=NF;j++)
	{
		media[parametro1,parametro2,parametro3,j] += $j; 
		
	}   		
	imax[parametro1,parametro2,parametro3] += 1;		


	desvio1[parametro1,parametro2,parametro3] += $2;
	desvio2[parametro1,parametro2,parametro3] += $2*$2; 	
	
}
END {

	for(i=parametro1_inicial;i<=parametro1_final;i=i+parametro1_var) 
	{  
		for(k=parametro2_inicial;k<=parametro2_final;k=k+parametro2_var) 
		{
			for(w=parametro3_inicial;w<=parametro3_final;w=w+parametro3_var) 
			{ 
				a=imax[i,k,w];
				desvio = sqrt( (desvio2[i,k,w] - (desvio1[i,k,w]*desvio1[i,k,w])/a)/a );
				
			   	for(j=1;j<=NF;j++)
				{
					media[i,k,w,j] = media[i,k,w,j]/a
					printf "%f ",media[i,k,w,j]
				}  	
				printf "%f ",desvio
				printf "%d \n",a      
			}
		}
        #printf("\n");
	}

}


Download file

This post is licensed under CC BY 4.0 by the author.