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 :

Points en vecteurs [Débutant]


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 50
    Points : 27
    Points
    27
    Par défaut Points en vecteurs
    Bonjour,

    Je cherche à créer un tableau V contenant des vecteurs à partir de deux matrices, l'une contenant la coordonnée x du point, et l'autre la coordonnée y.
    Ce n'est peut-être pas très clair alors voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    % Création des points aléatoires
     
    for i = 1:10
    x = round(50*rand(10,1));
    end
    for i = 1:10
    y = round(50*rand(10,1));
    end
     
    %------------------------------------------------------------
     
    % Création d'un tableau contenant tous les vecteurs possibles
     
    for j = 1:10
     
        for i = 1:10
     
            if i == j
                i = i + 1;
     
            else
     
                v = [x(i)-x(j),y(i)-y(j)];
                V{i} = v;
     
            end
        end
    end
    Durant les boucles, le tableau V se remplit et devrait contenir au final tous les vecteurs possibles à partir de ces 10 points.
    Je sais que la boucle ne fonctionne pas mais je ne comprends pas comment la faire fonctionner

    Aide bienvenue, merci !

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Les deux premières boucles ne servent à rien.

    Tu ne peux pas changer la valeur d'un indice d'une boucle dans la boucle.
    La ligne i = i + 1; ne sert à rien.

    Ensuite, à chaque itération sur j, tu écrases les valeurs précédemment stockées dans V
    Tu dois utiliser un tableau à deux dimensions dont le nombre de lignes augmente à chaque itération sur i

    Voici un début de correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    % Création des points aléatoires
     
    x = round(50*rand(10,1));
     
    y = round(50*rand(10,1));
     
    %------------------------------------------------------------
     
    % Création d'un tableau contenant tous les vecteurs possibles
     
    for j = 1:10
     
        for i = 1:10
     
            if i == j
     
                continue
     
            else
     
                ...
     
            end
        end
    end
    A toi de chercher le reste...
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 50
    Points : 27
    Points
    27
    Par défaut
    Merci pour ton aide.

    J'ai modifié mon code en créant ce tableau à 2 dimensions comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    V = zeros(100,2);
    for j = 1:10
     
        for i = 1:10
     
            if i == j
     
                continue
     
            else
     
                X = x(i)-x(j);
                Y = y(i)-y(j);
                V(i,1) = X;
                V(i,2) = Y;
     
            end
        end
    end
    Par contre je comprends toujours pas trop comment écraser les valeurs de V à chaque itération de j...

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Utilise un troisième indice k, indépendant de i et j que tu incrémentera toi-même.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 50
    Points : 27
    Points
    27
    Par défaut
    Merci beaucoup c'est tout bon !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calculer le vecteur normal a un plan formé par trois points.
    Par parp1 dans le forum Mathématiques
    Réponses: 12
    Dernier message: 11/03/2013, 17h57
  2. Vecteur d'enchainement de point
    Par farfouch00 dans le forum Images
    Réponses: 11
    Dernier message: 06/05/2010, 14h32
  3. Calculer un vecteur à partir de points
    Par mattparla dans le forum MATLAB
    Réponses: 38
    Dernier message: 26/02/2010, 11h50
  4. Matrice de vecteurs de points 2D
    Par K@rim dans le forum Débuter
    Réponses: 3
    Dernier message: 24/01/2009, 01h08
  5. Séparer les points d'un vecteur
    Par Sensib dans le forum MATLAB
    Réponses: 3
    Dernier message: 04/11/2006, 12h58

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