Incrémentation d'une matrice xyz avec bash
Bonjour,
Je vous explique le problème :
J'ai une matrice contenant des points en coordonnées cartésiennes :
a 1 2 3
b 4 5 3
c 7 6 4
et je voudrais faire une grille c'est a dire pour a b et c générer toutes les géométries possibles en ajoutant de manière itérative par exemple 0,5 à tous les x dix fois et 0,2 à tous les y 20 fois. Soit 200 géométries différentes !
pour ça j'ai utilisé utilisé la commande awk:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#!/bin/bash
ligne=1
x[0]=0.5
y[O]=0.1
while [[ $ligne -le 3 ]]
do
x[$ligne]=$(awk -v varx=$ligne 'NR==varx {print $2 }' fichier) #récupère le nombre dans la deuxième colonne
y[$ligne]=$(awk -v vary=$ligne 'NR==vary {print $3 }' fichier)
x[$ligne]=` expr ${x[$ligne]} + ${x[0]} ` |bc
y[$ligne]=` expr ${y[$ligne]} + ${y[0]} ` |bc
echo "x[$ligne] = " ${x[$ligne]}
echo "y[$ligne] = " ${y[$ligne]}
((ligne++))
done |
Si j'ai bien compris le seul moyen de générer des variables dynamiques c'est d'utiliser un tableau mon problème c'est que les tableaux demandent un entier, lors de l'exécution j'ai cette erreur : expr: non-integer argument !
Comment puis-je faire pour effectuer des opérations dans les tableaux car je n'ai rien trouvé jusqu'à présent.
De plus si vous aviez des suggestions sur l'organisation des diverses boucles à faire je suis preneur (je pense qu'il en faut au moins deux, d'une manière générale j'ai du mal à voir comment les organiser)
En vous remerciant,
Erlen