Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
599 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  extraction valeur min et max d'une colonne?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

extraction valeur min et max d'une colonne?

n°1521956
laroche14
Posté le 28-02-2007 à 20:22:14  profilanswer
 

Bonjour,  
j'ai un petit soucis j'aimerais extraire la valeur la plus faible et la plus forte d'une colonne pour m'en servir apres dans la creation d'une échelle de couleur or je ne sais pas comment faire pour les extraire?
 
Dans un fichier, j'ai 3colonnes (latitude, longitude et champ magnétique) de valeurs  que je peux ouvrir avec Xemacs.
Dans un autre fichier je demande qu'il me trace le champ magnétique en fonction de la latitude et longitude
Dans la derniere colonne (valeurs decimales) j'aimerais donc recuperer la valeur minimale et maximale pour tracer mon echelle de couleur car j'aimerais appliquer ce fichier à dautres fichiers à 3colonnes
 
Ben pour l'instant j'ai pas essayé ce que vous m'avez conseillé car je ne sais pas comment l'ecrire
 
mon code pour tracer mes cartes , où je veux introduire min et max
 
 
Code:
!/bin/csh
 
#je vais essayer d'extraire dans les fichiers .vec toutes les donnees de la region d'apollinaris patera
 
/* petit fichier permettant de me tracer les composantes du champ magnetique que l'on a pu predire!*/
set width = 5
  set lon_min = -10
  set lon_max = 10
  set lat_min = -10
  set lat_max = 10
set region = -R$lon_min/$lon_max/$lat_min/$lat_max
 
 
awk '{print$1,$2,$4}' calcul_dipole2.vec >! dipole2_br.vec
 
makecpt -Cno_green -T-1500/1500/500 -Z >! color1.cpt  ==> la à la place de 1500 j'aimerais le remplacer par un truc qui a chaque fois que je lance ça pour une autre zone d'etude,  ça me donne les valeur min et max !
mon fichier dipole2_br.vec ==> provient d'un code qui me calcule le champ Br pour une zone en latitude de -10 10 et -10 10 en longitude
 
 
Code:
-10.000000 -10.000000 4.933323784
-10.000000 -9.000000 5.367579746
-10.000000 -8.000000 5.735052237
-10.000000 -7.000000 5.980566054
-10.000000 -6.000000 6.037799353
-10.000000 -5.000000 5.836437190
-10.000000 -4.000000 5.315204053
-10.000000 -3.000000 4.439723355
-10.000000 -2.000000 3.220808505
-10.000000 -1.000000 1.725745953
-10.000000 0.000000 0.075055400
-10.000000 1.000000 -1.578019364
-10.000000 2.000000 -3.079919733
-10.000000 3.000000 -4.309267789
-10.000000 4.000000 -5.197595565
-10.000000 5.000000 -5.732847792
-10.000000 6.000000 -5.948314683
-10.000000 7.000000 -5.904461521
-10.000000 8.000000 -5.671095180
-10.000000 9.000000 -5.314292932
-9.000000 -10.000000 5.969985182
-9.000000 -9.000000 6.607356817
-9.000000 -8.000000 7.187623618
-9.000000 -7.000000 7.635294200
-9.000000 -6.000000 7.852688403
-9.000000 -5.000000 7.728076196
-9.000000 -4.000000 7.154633830

mood
Publicité
Posté le 28-02-2007 à 20:22:14  profilanswer
 

n°1522579
dreameddea​th
Posté le 01-03-2007 à 22:54:40  profilanswer
 

Awk me parrait pas mal pour ça
 
Dans ton script csh essaye qqch comme ça :

Code :
  1. min=`awk '{min_val=($1>min_val)?min_val:$1;} END{print min_val;}' [le nom du fichier]`
  2. max=`awk '{max_val=($1<max_val)?max_val:$1;} END{print min_val;}' [le nom du fichier]`


en remplaçant $1 par la bonne colonne
 
Voilà voilà

n°1539782
cedric912
Posté le 06-04-2007 à 17:48:51  profilanswer
 

Bonjour,
 
Ca marche! Je cherchais exactement la meme fonction. Est-il possible d'obtenir egalement l'index de la colonne ou on a le maximum?
 
Merci
 
Cédric

n°1540198
Sve@r
Posté le 08-04-2007 à 14:34:26  profilanswer
 

cedric912 a écrit :

Bonjour,
 
Ca marche! Je cherchais exactement la meme fonction. Est-il possible d'obtenir egalement l'index de la colonne ou on a le maximum?


 
Oui, il suffit de mémoriser "NR" (le n° de ligne) au moment où tu tombes sur la bonne valeur
Ex:

Code :
  1. min=`awk '{if ($1 <= min_val) {min_val=$1; index=NR}} END {print min_val:index}' nom_fic`
  2. max=`awk '{if ($1 >= max_val) {max_val=$1; index=NR}} END {print max_val:index}' nom_fic`


en remplaçant $1 par la bonne colonne => ça te donnera da valeur suivi de ":" puis la position


Message édité par Sve@r le 08-04-2007 à 14:35:06

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  extraction valeur min et max d'une colonne?

 

Sujets relatifs
Copier plusieurs colonne dans une nouvelle feuilleCommande pour recupérer valeur et l'intégrer dans un fichier
Parser un html et récuperer une valeurClique modifie la valeur d'un input...
Envoyer des valeurs dans une colonne de MySQL[JSTL/JSP/JAVA] comment afficher la clé d'un .properties ? [Resolu]
Affichage de la valeur d'un variableCréer une liste de valeur
Extraction de mots d'une chaîneExtraction de chaînes avec sscanf et des expressions régulières
Plus de sujets relatifs à : extraction valeur min et max d'une colonne?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR