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 :

relier des points entre eux avec une boucle


Sujet :

MATLAB

  1. #1
    Membre très actif
    Profil pro
    Doctorant
    Inscrit en
    Février 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 258
    Par défaut relier des points entre eux avec une boucle
    J'ai un nuage de points point_cloud = [-1,0; 1,0; 1,2; -1,2; 0,3]; que je veux relier entre eux selon deux vecteurs k=[1 5 5 3 4] et l=[3 4 3 5 5] ça veut dire la premier point de nuage sera connecté avec la troisième le cinquième avec le quatrième ,le cinquième avec le troisième ...etc

    voici ma boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    cc=point_cloud(:,1)
        ll=point_cloud(:,2)
        for m=1:size(k,1)
          plot([point_cloud(k(m),1) point_cloud(l(m),1)],[point_cloud(k(m),2) point_cloud(l(m),2)],'r*-') 
          hold on
        end 
     
        plot(cc,ll,'r*')
    	hold off
    mais la boucle me trace qu'un seul segment la premier entre le point 1 et 3 le reste il n'est pas pris en considération , une idée s'il vous plait ?

  2. #2
    Membre chevronné
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Par défaut
    Bonjour,

    Ma suggestion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    point_cloud = [-1,0; 1,0; 1,2; -1,2; 0,3];
    k=[1 5 5 3 4];
    l=[3 4 3 5 5];
     
    hold on
    for id=1:numel(k)
        line([point_cloud(k(id),1),point_cloud(l(id),1)],[point_cloud(k(id),2),point_cloud(l(id),2)])
    end

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Par défaut
    Citation Envoyé par thecrazydonut Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for id=1:numel(k)
        line([point_cloud(k(id),1),point_cloud(l(id),1)],[point_cloud(k(id),2),point_cloud(l(id),2)])
    end
    Sans la boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plot([point_cloud(k, 1) point_cloud(l, 1)].',  [point_cloud(k, 2) point_cloud(l, 2)].', 'b-')

Discussions similaires

  1. Relier des points entre eux
    Par lileric13 dans le forum MATLAB
    Réponses: 2
    Dernier message: 28/01/2013, 15h32
  2. Réponses: 0
    Dernier message: 10/04/2010, 02h40
  3. Réponses: 11
    Dernier message: 24/07/2006, 09h30
  4. : remplir des zones de texte avec une boucle For
    Par Haro_GSD dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 22h23
  5. Generer des noms de variables avec une boucle
    Par moutanakid dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/07/2004, 18h45

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