Bonjour à tous,
Je viens d'écrire un code qui permet de modéliser les transferts hydriques sur un bassin versant (oui je suis en hydrologie . Cela fonctionne mais c'est assez lent. J'ai vectorialisé au maximum les calculs, sauf une partie que je n'ai pas réussie. Je ne sais pas d'ailleurs si c'est possible... Je vais essayer d'expliquer clairement :
Pour chaque cellule de mon terrain j'ai calculé dans quelle direction s'écoule l'eau. Une matrice de la même dimension que mon terrain possède cette information. Si je mets cela en 1D pour simplifier :
valeurs = [1, 0, 1];
directions = [2, 0, 2];
Ce que j'attends c'est
valeurs = [0, 2, 0]
c'est à dire que la première valeur soit déplacée dans la seconde cellule, et la dernière valeur également. Et il faut que ce soit sommé !
Quelque chose de ce genre serait génial (mais ne fonctionne pas) :
valeurs2 = valeurs + valeurs(directions)
(ici valeurs2 est une matrice de transfert)
Mais impossible de mettre en argument un vecteur d'indices.
Ma solution actuelle est de traiter au cas par cas. Mais le for... ça prend du temps :s
Merci d'avance pour vos idées ou pistes...
Anthony.
Partager