Rechercher : dans
Par :

Variances et Ecart type en Shell

Dernière réponse le 24 avr 2009 à 13:59:38 coco2205, le 24 avr 2009 à 10:15:22 
 Signaler ce message aux modérateurs

Bonjour à tous,

Je suis actuellement en train d'écrire un script mais je suis bloqué. Etant débutante, je ne connait pas parfaitement ce langage de programmation. Et j'aimerai savoir comment l'on peut faire pour calculer la variance et l'écart type d'une colonne de chiffre qui est placé dans fic.txt. C'est à dire, que mon script, lorque je le lance, je ferai appel à mon fic.txt en argument (sur la ligne de commande).

> ./var.sh fic.txt

Mon fichier fic.txt contient cela :
2
5
6
8

Lorque je lancerai cela, il me donnera en sortie :
> ./var.sh fic.txt
2 4.68 2.16
5 4.68 2.16
6 4.68 2.16
8 4.68 2.16

4.68 correspond à la vairance et 2..16 à l'écart type.

Mon soucis est ke je n'arrive pas a programmer ces étapes qui sont les suivantes :

1) somme des nombres de la colonnes et le mettre dans la variable A (ici 2+5+6+8 ce qui donne A=21)
2) somme des carrés des nombres de la colonne et le mettre dans la variable B (ici 4+25+36+64 ce qui donne B=129)
3) Diviser A et B par la taille de la colonne (c'est à dire 4 ici). Ce qui donnerai A=A/4 et B=B/4
4) B-A² (Résultat de la variance, la mettre dans une variable C)
5) Racine de C (Résultat de l'écart type)

En espérant que vous m'aidiez.

Cordialement

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « Variances et Ecart type en Shell » dans :
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
Guide d'utilisation du Shell pour débutant VoirSHELL BASH - GUIDE D'UTILISATION - Niveau Débutant Introduction Appel aux membres CCM II. C'est quoi le shell ? III. Comment accéder à la ligne de commande IV. Les consoles virtuelles Exemple : Accéder à la console 3 depuis l'interface...
VMWare - Les différents types de réseau VMWare VoirQuand on crée une machine virtuelle dans VMWare, nous avons le choix entre 3 types de connectivité : Host-only, NAT ou Bridged. Le schéma suivant vous explique la différence entre ces 3 modes: Note 1: Si vous n'avez pas d'équipement (LAN,...
Télécharger RapidTyping Typing Tutor VoirL'apprentissage de la saisie au clavier à l'aveuglette peut devenir une tâche désagréable quand on pas les bonnes méthodes. Il suffit d'un rien pour que cela devienne un jeu. Touch Typing Tutor est un tutorial complet, interactif et amusant pour...
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...

1

jipicy, le 24 avr 2009 à 10:37:38

Salut,

Tournes-toi plutôt vers "awk" pour ce genre de calcul, le shell même s'il peut s'en sortir à grands coups de moulinettes n'est pas à proprement parlé l'idéal pour ce genre de calcul...
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

2

coco2205, le 24 avr 2009 à 10:41:49

Okay et pour faire un racine carré ou pour mettre au carré ? Comment fait on ?

Répondre à coco2205

3

eZula, le 24 avr 2009 à 13:00:42

Petits exemples :

racine carrée : sqrt

echo 2 | awk '{print sqrt($1)}'
1.41421

echo 4 | awk '{print sqrt($1),$1*$1,$1/(sqrt($1)+$1/2)}'
2 16 1

Répondre à eZula

4

jipicy, le 24 avr 2009 à 13:04:07

Y'en a qui apprenne vite ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

5

 coco2205, le 24 avr 2009 à 13:59:38

Sqrt est la fonction racine carré ?

Répondre à coco2205