Multiplier un fichier de données
Résolu/Fermé
toto5812
Messages postés
57
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
21 janvier 2015
-
12 mars 2010 à 22:15
toto5812 Messages postés 57 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 21 janvier 2015 - 13 mars 2010 à 17:10
toto5812 Messages postés 57 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 21 janvier 2015 - 13 mars 2010 à 17:10
A voir également:
- Multiplier un fichier de données
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier host - Guide
- Ouvrir un fichier .bin - Guide
8 réponses
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
13 mars 2010 à 09:18
13 mars 2010 à 09:18
hello
$ CAL=$(cat Cal1) $ echo $CAL 1.0E-1 $ awk -F, -v cal=$CAL '{for(n=1;n<NF;n++)printf $n*cal*0.04 FS;print ""}' u -0.132,-0.132,-0.128,-0.136,-0.132,-0.136,-0.128,-0.132,-0.132,-0.132,-0.132,-0.132,-0.136,-0.132,-0.128,-0.132,-0.132,-0.128,-0.128,-0.132,-0.124,-0.14,-0.128,-0.124,-0.132,-0.132,-0.128, -0.136,-0.124,-0.124,-0.132,-0.136,-0.132,-0.132,-0.132,-0.128,-0.132,-0.132,-0.128,-0.128,-0.132,-0.128,-0.132,-0.124,-0.136,-0.136,-0.136,-0.132,-0.136,-0.136,-0.124,-0.128,-0.132,-0.128, -0.132,-0.132,-0.132,-0.132,-0.128,-0.132,-0.132,-0.132,-0.132,-0.128,-0.132,-0.124,-0.136,-0.128,-0.132,-0.128,-0.132,-0.136, -0.128,-0.132,-0.124,-0.132,-0.136,-0.132,-0.124,-0.132,-0.132,-0.128,-0.136,-0.132,-0.136,-0.136,-0.128,-0.136,-0.132,-0.132, $
toto5812
Messages postés
57
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
21 janvier 2015
13 mars 2010 à 00:14
13 mars 2010 à 00:14
Bon, je ne peux plus modifier, alors je précise ce que je veux faire (merci de ne pas tenir compte du premier message, tout est dans celui-ci!):
je dispose d'un fichier "u" que je récupère d'un oscilloscope numérique. Ce sont les coordonnées de la trace, en pixel.
Je récupère également la valeur du calibre en tension dans le ficher "Cal1":
Dans un premier temps, je souhaiterais multiplier chaque valeur du fichier "u" par 0,04*Cal1
où 0,04 correspond à 4/100 (100 est l'amplitude maximale de la trace dans le fichier "u" pour 4 divisions) et Cal1 est la valeur contenue dans le fichier du même nom.
Comment puis-je faire en pratique (dans un script shell)???
Merci
je dispose d'un fichier "u" que je récupère d'un oscilloscope numérique. Ce sont les coordonnées de la trace, en pixel.
# cat u -33,-33,-32,-34,-33,-34,-32,-33,-33,-33,-33,-33,-34,-33,-32,-33,-33,-32,-32,-33,-31,-35,-32,-31,-33,-33,-32, -34,-31,-31,-33,-34,-33,-33,-33,-32,-33,-33,-32,-32,-33,-32,-33,-31,-34,-34,-34,-33,-34,-34,-31,-32,-33,-32, -33,-33,-33,-33,-32,-33,-33,-33,-33,-32,-33,-31,-34,-32,-33,-32,-33,-34, -32,-33,-31,-33,-34,-33,-31,-33,-33,-32,-34,-33,-34,-34,-32,-34,-33,-33,
Je récupère également la valeur du calibre en tension dans le ficher "Cal1":
# cat Cal1 1.0E-1
Dans un premier temps, je souhaiterais multiplier chaque valeur du fichier "u" par 0,04*Cal1
où 0,04 correspond à 4/100 (100 est l'amplitude maximale de la trace dans le fichier "u" pour 4 divisions) et Cal1 est la valeur contenue dans le fichier du même nom.
Comment puis-je faire en pratique (dans un script shell)???
Merci
toto5812
Messages postés
57
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
21 janvier 2015
13 mars 2010 à 14:10
13 mars 2010 à 14:10
ok, ça marche!
Par contre j'obtiens un fichier du type:
ou le séparateur est aussi la virgule... Du coup lorsque je veux faire apparaître le graphe sous octave, le résultat n'est pas bon.... Comment faire pour préciser que les nombres à virgules s'écrivent avec un point??
Merci
Par contre j'obtiens un fichier du type:
cat v 0,42,-0,42,-0,42,-0,4,-0,44,-0,44,-0,42,-0,44,-0,44,-0,44,-0,44,-0,44,-0,42,-0,44,-0,44,-0,42,-0,44,-0,44,-0,44,-0,44 ,-0,42,-0,44,-0,42,-0,44,-0,44,-0,44,-0,42,-0,44,-0,42,-0,44,-0,44,-0,44,-0,44,-0,42,-0,42,-0,42,-0,44,-0,44,-0,44, -0,44,-0,48,-0,48,-0,48,-0,48,-0,48,-0,5,-0,48,-0,48,-0,48,-0,48,-0,5,-0,5,-0,5,-0,48,-0,48,-0,48,-0,48,-0,5,-0,48, -0,5,-0,5,-0,48,-0,5,-0,5,-0,48,-0,48,-0,46,-0,48,-0,48,-0,48,-0,48,-0,48,-0,48,-0,48,-0,48,-0,48,-0,5,-0,52,-0,5,
ou le séparateur est aussi la virgule... Du coup lorsque je veux faire apparaître le graphe sous octave, le résultat n'est pas bon.... Comment faire pour préciser que les nombres à virgules s'écrivent avec un point??
Merci
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
13 mars 2010 à 15:52
13 mars 2010 à 15:52
montre ton locale:
set|egrep 'LOCAL|LC'
locale
set|egrep 'LOCAL|LC'
locale
toto5812
Messages postés
57
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
21 janvier 2015
13 mars 2010 à 15:58
13 mars 2010 à 15:58
voila le resultat:
$ set|egrep 'LOCAL|LC' MAILCHECK=60
$ locale LANG=fr_FR.UTF-8 LC_CTYPE="fr_FR.UTF-8" LC_NUMERIC="fr_FR.UTF-8" LC_TIME="fr_FR.UTF-8" LC_COLLATE="fr_FR.UTF-8" LC_MONETARY="fr_FR.UTF-8" LC_MESSAGES="fr_FR.UTF-8" LC_PAPER="fr_FR.UTF-8" LC_NAME="fr_FR.UTF-8" LC_ADDRESS="fr_FR.UTF-8" LC_TELEPHONE="fr_FR.UTF-8" LC_MEASUREMENT="fr_FR.UTF-8" LC_IDENTIFICATION="fr_FR.UTF-8" LC_ALL=
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
13 mars 2010 à 15:59
13 mars 2010 à 15:59
et
locale
locale -c LC_NUMERIC
locale
locale -c LC_NUMERIC
toto5812
Messages postés
57
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
21 janvier 2015
13 mars 2010 à 16:02
13 mars 2010 à 16:02
~$ locale -c LC_NUMERIC LC_NUMERIC , 3;3 44 32 UTF-8
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
13 mars 2010 à 16:16
13 mars 2010 à 16:16
essaye
LC_NUMERIC="en_US.UTF-8" awk -F, -v cal=$CAL '{for(n=1;n<NF;n++)printf $n*cal*0.04 FS;print ""}' u
LC_NUMERIC="en_US.UTF-8" awk -F, -v cal=$CAL '{for(n=1;n<NF;n++)printf $n*cal*0.04 FS;print ""}' u
toto5812
Messages postés
57
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
21 janvier 2015
13 mars 2010 à 16:43
13 mars 2010 à 16:43
merci, ça marche!
toto5812
Messages postés
57
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
21 janvier 2015
13 mars 2010 à 17:10
13 mars 2010 à 17:10
Bon, maintenant grace à vous, je peux convertir les valeurs de l'ordonnée en tension.
Merci
Merci
13 mars 2010 à 13:51
Et pour enregistrer le résultat dans un autre fichier, "v" par exemple??
Merci
13 mars 2010 à 14:04