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 :

Manipulation de matrices


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 86
    Par défaut Manipulation de matrices
    Bonjour,

    Devant mettre à jour une structure, j'aimerai bien obtenir un vecteur colonne qui reprend dans un certain ordre (déterminé par les lignes de SegmentsCommuns) l'ensemble des points qui forment une frontière entre deux plans. A partir du vecteur PointsExtremes je connais le point origine et le point extrémité.

    Voici un exemple pour bien comprendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PointsExtremes = [3; 4]
    SegmentsCommuns = [3 17; 15 11; 11 17 ; 12 15; 12 4]
     
    ResultatSouhaite = [3; 17; 11; 15; 12; 4]
    Avez-vous une solution à ce problème ? Ce serait vraiment super !!!

    Bon appétit et merci d'avance pour votre aide !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 93
    Par défaut
    Bonjour,

    je veux bien essayer de te repondre, mais tu veux bien t'y prendre autrement parce que j'ai pas bien saisi ce que tu veux dire.


    A+

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 86
    Par défaut
    En fait la 1ere valeur de PointsExtremes correspond à la première valeur du vecteur de sortie (de même pour la dernière valeur).

    Je connais donc les extrémités de la séquence souhaitée.

    Ensuite pour avoir l'intérieur de la séquence, je dois regarder dans la matrice SegmentsCommuns où à partir de mon premier point (ici 3) je regarde l'autre élément de la ligne que je considère comme suivant dans mon vecteur de sortie jusqu'à ce que j'atteigne la derniere valeur (4)

    J'espère que ça vous aide un petit peu


  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Par défaut
    Est ce que ce code répond à ta question ?
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    clear all
    close all
     
    PointsExtremes = [3; 4];
    SegmentsCommuns = [3 17; 15 11; 11 17 ; 12 15; 12 4];
     
     
    init=PointsExtremes(1);
    fin=PointsExtremes(2);
     
    i=1;
    resultat(1)=init;
    [prev_a prev_b]=find((SegmentsCommuns-init)==0);
    if mod(prev_b,2)==0
        prev_b=prev_b-1;
    else
        prev_b=prev_b+1;
    end
    init=SegmentsCommuns(prev_a(1),prev_b(1));
    i=i+1;
    resultat(i)=init;
    while (not(resultat(end)==fin))
        i=i+1;
        [new_a new_b]=find((SegmentsCommuns-init)==0);
        if size(new_a==2)
            if ((new_a(1)-prev_a)==0)        
                prev_a=new_a(2);
                if mod(new_b(2),2)==0
                    prev_b=new_b(2)-1;
                else
                    prev_b=new_b(2)+1;
                end
                init=SegmentsCommuns(prev_a(1),prev_b(1));
            else    
                 prev_a=new_a(1);
                if mod(new_b(1),2)==0
                    prev_b=new_b(1)-1;
                else
                    prev_b=new_b(1)+1;
                end
                init=SegmentsCommuns(prev_a(1),prev_b(1)) ;               
            end        
        end
        resultat(i)=init;
    end 
     
    ResultatSouhaite=resultat

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 86
    Par défaut
    Le résultat est correct !

    Je vais essayer d'explorer d'autres possibilités afin d'optimiser le tout mais en tout cas un grand merci !

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Quelle est le problème avec la solution que je t'ai donnée il y a quelques jours ?

    Voir : mise a jour table polyligne frontière

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

Discussions similaires

  1. [Débutant] Manipulation de matrices
    Par MireilleC dans le forum MATLAB
    Réponses: 3
    Dernier message: 04/08/2007, 12h12
  2. manipulation des matrices sous SSRS
    Par linram dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/07/2007, 12h31
  3. [Manipulation de matrices] Elements adjacents
    Par Opérateur dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 25/11/2006, 11h30
  4. Fonctions manipulant des matrices
    Par panda31 dans le forum C
    Réponses: 24
    Dernier message: 14/06/2006, 10h28
  5. Manipulation de matrices.
    Par TeKa dans le forum C
    Réponses: 28
    Dernier message: 16/11/2005, 15h53

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