taupinambour
XLDnaute Nouveau
Bonjour,
Pardonnez mon ignorance, mais est-il possible de créer une fonction à deux arguments (tableau1 une liste de points n*3, tableau 2 un vecteur1 1*3 à sélectionner de la même manière que les fonctions de base d'excel).
Le but ici serait de calculer la distance entre le vecteur1 et tous les points du tableau1 et d'en déterminer le point le plus proche du vecteur1.
Je dois faire cette manipulation sur un grand nombre de points dans des fichiers différents, une fonction de ce type me serait d'une grande utilité.
Dans l'idée j'avais pensé à:
Function ptleplusproche(vecteur1, tableau1)
i as integer
ptleplusproche(1,3) as double
n as integer
n = nombredeligne(tableau1) 'nombre de points
for i= 1 to n 'boucle for afin de calculer toutes les distances
dist(i,1) = sqr( (vecteur1(1,1)-tableau(i,1))^2+(vecteur1(1,2)-tableau(i,2))^2+(vecteur1(1,3)-tableau(i,3))^2)
endfor
minimum=min(dist) 'calcul du minimum
numeroligne=equiv(minimum,dist(),0) 'récupération du numéro de ligne du point le plus proche
ptleplusproche(1,1)= tableau1(numeroligne,1)
ptleplusproche(1,2)= tableau1(numeroligne,2)
ptleplusproche(1,3)= tableau1(numeroligne,3)
endFunction
Evidemment, je suis conscient que toute la syntaxe est fausse, le code ci-dessus n'est écrit que dans le but d'éclaircir le problème (je l'espère). Là où j'ai du mal (malgrès mes recherches), c'est dans la déclaration des tableaux et l'utilisation de leurs valeurs.
D'avance merci.
Pardonnez mon ignorance, mais est-il possible de créer une fonction à deux arguments (tableau1 une liste de points n*3, tableau 2 un vecteur1 1*3 à sélectionner de la même manière que les fonctions de base d'excel).
Le but ici serait de calculer la distance entre le vecteur1 et tous les points du tableau1 et d'en déterminer le point le plus proche du vecteur1.
Je dois faire cette manipulation sur un grand nombre de points dans des fichiers différents, une fonction de ce type me serait d'une grande utilité.
Dans l'idée j'avais pensé à:
Function ptleplusproche(vecteur1, tableau1)
i as integer
ptleplusproche(1,3) as double
n as integer
n = nombredeligne(tableau1) 'nombre de points
for i= 1 to n 'boucle for afin de calculer toutes les distances
dist(i,1) = sqr( (vecteur1(1,1)-tableau(i,1))^2+(vecteur1(1,2)-tableau(i,2))^2+(vecteur1(1,3)-tableau(i,3))^2)
endfor
minimum=min(dist) 'calcul du minimum
numeroligne=equiv(minimum,dist(),0) 'récupération du numéro de ligne du point le plus proche
ptleplusproche(1,1)= tableau1(numeroligne,1)
ptleplusproche(1,2)= tableau1(numeroligne,2)
ptleplusproche(1,3)= tableau1(numeroligne,3)
endFunction
Evidemment, je suis conscient que toute la syntaxe est fausse, le code ci-dessus n'est écrit que dans le but d'éclaircir le problème (je l'espère). Là où j'ai du mal (malgrès mes recherches), c'est dans la déclaration des tableaux et l'utilisation de leurs valeurs.
D'avance merci.