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:
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 !
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
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
Partager