Retirar carácter e fazer média [RESOLVIDO]

1. Retirar carácter e fazer média [RESOLVIDO]

Buchen
Buchen

(usa openSUSE)

Enviado em 16/07/2014 - 23:44h

Olá.
Preciso encontrar alguma forma para criar um script o qual tira o sinal de negativo dos resultados, e em seguida faz a média deles. Os resultados são apresentados na seguinte ordem:

-0.051724
0.006536
-0.059647
-0.059581
-0.030550
-0.067758
-0.071861
0.043551
-0.035601
-0.066854
-0.037932
-0.071736
-0.028486
0.048262
0.057218
-0.060878
-0.053184

Alguém tem alguma dica?
Obrigado


  


2. Re: Retirar carácter e fazer média [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 17/07/2014 - 00:45h

Dado que o bash e o sh tradicional não trabalham com números fracionários, você provavelmente vai ter de recorrer ao awk ou Perl. Em ambos os casos, você pode usar a função "abs" para obter o módulo do valor numérico.


3. Re: Retirar carácter e fazer média [RESOLVIDO]

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 17/07/2014 - 07:13h

Tem que multiplicar por -1 utilizando o bc:

x = -0.012345
echo "-1*($x)" | bc

Só não sei como acrescentar o zero a antes do ponto. Pesquise aí.


4. Re: Retirar carácter e fazer média [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 17/07/2014 - 11:45h

Corrigindo-me: ao contrário do que eu supus, o awk não tem a função abs pré-definida. Mas isso se resolve definindo uma função abs por conta própria.

awk 'function abs(x) { return x<0? -x: x; } { total+=abs($1); contagem++ } END { printf("Media dos modulos dos %d valores: %f\n", contagem, total/contagem) }' seu_arquivo_com_numeros 


Em perl é mais simples, já que a função abs é nativa.

perl -ne '$total+=abs($_); $contagem++; END { printf("Media dos modulos dos %d valores: %f\n", $contagem, $total/$contagem); }' seu_arquivo_com_numeros 



5. Re: Retirar carácter e fazer média [RESOLVIDO]

Buchen
Buchen

(usa openSUSE)

Enviado em 17/07/2014 - 13:44h

Muito Obrigado paulo1205.
Funcionou certinho :)
Utilizei o awk






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts