Bonjour,
je dispose de deux tableaux:
@tab (
10,
10,
7,
8,
10,
8,
10,
10,
8,)
@val(
1.5000E-22,
1.5700E-21,
3.5050E-18,
2.5005E-14,
4.5000E-15,
8.5008E-21,
1.7009E-22,
1.4870E-24,
1.4870E-24,
)
Je souhaite mettre les deux tableaux en correlation suivant les valeurs du premier tableau, en respectant l'ordre. En d'autres termes:
si la valeur du premier element du premier tableau est "10", je souhaiterais que la premiere valeur du second tableau soit mutipliee par 2.
si la valeur du sixieme element du premier tableau est "10", je souhaiterais que la sixieme valeur du second tableau soit mutipliee par 2.
si la valeur du septieme element du premier tableau est "7", je souhaiterais que la premiere valeur du second tableau soit mutipliee par 8.
...
Si la valeur du nieme element du premier tableau est "k", je souhaiterais que la nieme valeur du second tableau soit multipliee par "m", m etant une fonction de k.
#je numerote les lignes du premier tableau @tab
foreach $x (@tab) {
if ($x =~ /\d+ /) {
$a = $a +1 ;
}
# j'assigne un compteur pour chaque valeurs de mon premier tableau @tab (ici, seul 10 est mis en exemple)
if ($x =~ /10/){
$b = $a;
}
else {
$b =~ //
}
}
Probleme: Seul un certain nombre de mes valeurs $b sont corrects; quand il y a plusieurs "10" de suite dans mon tableau, la valeur $b reste la meme. Typiquement, les valeurs de $b retournee ici sont 2, 5, 8)
# je numerote les ligne du deuxieme tableau @val et j'associe les valeurs du tableau @val aux valeurs de tableau @tab:
foreach $y (@val) {
if ($y =~ /\d+ /) {
$d = $d +1 ;
}
if ($d = $b) {
$y =2*$y;
}
}
Ma methode est bourrin, mais je pense qu'elle pourrait marcher.
Partager