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 : Sélectionner tout - Visualiser dans une fenêtre à part
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