IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Calcul du plus proche voisin en 2D


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 34
    Points : 21
    Points
    21
    Par défaut Calcul du plus proche voisin en 2D
    Bonjour,

    Je tente de chercher le plus proche voisin de chaque point parmi une liste qui contient ce même point. La fonction nearest neighbors semble bien appropriée
    après une triangulation. En revanche j'ai un souci, lorsque je sors le pid qui doit me renvoyer l'indice de son voisin le plus proche, je me retrouve avec des correspondances 1-1, ce qui n'est pas bon puisque cela indique que son plus proche voisin est lui même...J'ai pourtant essayé avec une sous matrice mais cela ne marche pas également..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    load built.txt;
    x1 = built(:,1);
    x2 = built(:,2);
    h = [x1 x2];
    for n= 1:193;
            V = [h(1:n-1,:);h(n+1:193,:)];
            dt = DelaunayTri(V(:,1),V(:,2));
            qrypts = h(n,1:2);
            pid(n) = nearestNeighbor(dt, qrypts);
    end
    Merci de votre réponse

    MT

  2. #2
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Il te manque une ligne de code :
    lorsque tu retires le point de la liste, tu décales les indices de tous les points suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    x1 = rand(10,1);
    x2 = rand(10,1);
    h = [x1 x2];
    pid = zeros(10,1);
    for n= 1:10;
            V = [h(1:n-1,:);h(n+1:10,:)];
            dt = DelaunayTri(V(:,1),V(:,2));
            qrypts = h(n,1:2);
            pid(n) = nearestNeighbor(dt, qrypts);
            if (pid(n)>=n) % Ne pas oublier qu'on a enlevé un point!
                pid(n) = pid(n)+1;
            end
    end

Discussions similaires

  1. Algorithme KD-Tree de recherche du plus proche voisin .
    Par mobi_bil dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 11/05/2014, 11h54
  2. méthode des k plus proche voisin en matlab
    Par koukitta dans le forum Images
    Réponses: 4
    Dernier message: 15/05/2009, 17h47
  3. Plus proche voisin dans un kd-tree
    Par koni33 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 11/05/2009, 15h10
  4. Recherche des plus proches voisins dans un espace variable à K dimensions parmis N
    Par JeromeBcx dans le forum Algorithmes et structures de données
    Réponses: 34
    Dernier message: 26/06/2008, 17h46
  5. Réponses: 3
    Dernier message: 12/04/2007, 09h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo