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 :

Suppression de coordonnées 'proches'


Sujet :

MATLAB

  1. #1
    Membre habitué Avatar de airballman
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 256
    Points : 178
    Points
    178
    Par défaut Suppression de coordonnées 'proches'
    Bonjour,

    Je manipule des matrices de taille 2*N, qui correspondent à des coordonnées en x y.

    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    coord = [
    3.6828   98.6770
        4.3351   79.3909
        5.1570  109.3459
        5.7120  105.2950
       18.6577  107.2195
       18.8838   84.4558
       19.1198  108.6156]
    J'ai classé les coordonnées selon les x pour l'instant.

    L'idée est simple, y a t'il un moyen aisé de supprimer toutes les lignes de la matrice pour les coordonnées qui sont trop proches les unes des autres?

    JE suis en train de le faire par moi même mais j'ai peur de perdre du temps (avec des enchainements de boucles a n en plus finir) en ratant une astuce.

    Je voudrais par exemple ne garder que les coordonnées dont les x sont distants de 3 mètres au moins les uns des autres.

    Après en classant selon les y, il sera facile de faire de meme pour les y.


    Merci d'avance!
    Maison et Boulot : Python - OpenCV/Numpy - IPython
    Boulot : Ubuntu 11.04
    Maison : #!, bien sûr

    Astuces Linux, Python et autres Matlab
    Photos/fonds d'écran (bon ok faut aimer la nature )

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Salut airball,

    Tu peux utiliser

    pour connaitre la distance entre tes coordonnées et supprimer les valeurs si le diff est inférieur à 3.

  3. #3
    Membre habitué Avatar de airballman
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 256
    Points : 178
    Points
    178
    Par défaut
    Salut,

    Oui justement c'est ce que je fais. Sauf que pour verifier que tout est fait, cela revient a faire une boucle while (tant qu'il y a au moins deux coordonnées qui ne satisfont pas la condition), encapsulée dans une boucle for (pour chaque couple de coordonnée restantes) et tout cela sur fond de suppression de lignes dans une matrice dont on se sert de la taille comme indice max dans la boucle :s

    Donc si possible je voulais eviter de passer par la . De plus, dans le cas ou par exemple 6 corrdonnées se suivent et dont distantes de 1 m par exemple, ce n'est pas forcement la meilleure solution de garder la premiere ou la derniere du set

    Merci de ta réponse, je continue à chercher!
    Maison et Boulot : Python - OpenCV/Numpy - IPython
    Boulot : Ubuntu 11.04
    Maison : #!, bien sûr

    Astuces Linux, Python et autres Matlab
    Photos/fonds d'écran (bon ok faut aimer la nature )

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    hmm, là du coup ca ête un peu plus compliqué à mettre en oeuvre. surtout si ca n'est pas vraiment automatisable (dans le cas ou tu ne veux pas spécialement garder la première et la deuxième coordonnées)

    Perso, j'utiliserais les diff combiné à des find pour trouver les indices à supprimer. Pas besoin de boucles while ou for. enfin, je pense que ca n'est pas nécessaire.

  5. #5
    Membre habitué Avatar de airballman
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 256
    Points : 178
    Points
    178
    Par défaut
    JE vais voir ce que ca donne.

    Ma version avec les boucles tourne a peu pres, et pas trop lentement (je mets moins d'une demi-seconde pour 100 couples de coords).

    Voilou


    Mercii
    Maison et Boulot : Python - OpenCV/Numpy - IPython
    Boulot : Ubuntu 11.04
    Maison : #!, bien sûr

    Astuces Linux, Python et autres Matlab
    Photos/fonds d'écran (bon ok faut aimer la nature )

Discussions similaires

  1. Liste de coordonnées les plus proche
    Par Serine73 dans le forum Requêtes
    Réponses: 5
    Dernier message: 07/05/2013, 08h53
  2. Suppression des coordonnées d'un axe
    Par Vestaproman dans le forum Qwt
    Réponses: 0
    Dernier message: 27/10/2011, 12h14
  3. Coordonnées les plus proches
    Par turguedu dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/02/2011, 15h11
  4. Trouver les coordonnées géographiques les plus proches
    Par smikar dans le forum Accès aux données
    Réponses: 2
    Dernier message: 22/10/2010, 16h17
  5. Trouver coordonnées x/y les plus proches
    Par tet2brick dans le forum Requêtes
    Réponses: 5
    Dernier message: 20/02/2009, 15h33

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