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 doublon: uniqueperms? unique?


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 30
    Points
    30
    Par défaut suppression doublon: uniqueperms? unique?
    Bonjour

    j'ai une matrice de N lignes et M colonnes
    J'aimerais trier mes données de façon croissante en fonction d'une valeur mais je ne suis pas sur que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    d=[]
    for i=1:365
       data=data(data(:,1)==i,:);
       d=[d data];
    end
    fonctionne...

    Mais ce qui est important c'est que j'arrive à retirer les doublons des lignes; j'ai tenté d'utiliser uniqueperms, puis unique et perms... mais ça me met des erreurs (probleme de mémoire)
    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
    ??? Out of memory. Type HELP MEMORY for
    your options.
     
    Error in ==> perms at 34
    P = V(P);
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
     
    Error in ==> perms at 22
    q = perms(1:n-1);  % recursive calls
    je ne sais pas trop quoi faire du coup...

    j'ai essayé de me baser sur http://www.developpez.net/forums/d99...blons-matrice/ qui paraissait bien mais je ne dois pas avoir bien compris comment fonctionnait cette fonction

    exemple d'essai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ex=[1 2 3 4 5 6;1 2 3 4 5 6; 1 3 5 2 6 5; 1 2 4 5 6 3];
    ex2=unique(ex)
    retour:
    ex2=[1 2 3 4 5 6]

    alors que ce que je veux c'est ex2=[1 2 3 4 5 6; 1 3 5 2 6 5; 1 2 4 5 6 3];

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je ne suis pas sur ce comprendre ce que tu souhaites faire avec ton premier code... Toujours est-il que je pense que tu devrais au moins changer ces 'data'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    d=[]
    for i=1:365
       data=data(data(:,1)==i,:);
       d=[d data];
    end
    Tu parles de trier tes données de façon croissante, as-tu regardé la fonction sort?

    Pour le deuxième concernant l'utilisation de unique, il faut ajouter le paramètre 'rows':
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ex=[1 2 3 4 5 6;1 2 3 4 5 6; 1 3 5 2 6 5; 1 2 4 5 6 3];
    ex2 = unique(ex,'rows')

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    Pour unique: parfait! ça marche nickel... Merci!

    Pour ce qui est de sort ou sortrows, ça ne fonctionne pas comme je le voudrais...

    Je vais le faire sur un exemple, ce sera plus simple

    ex=[1 2 3 4 5 6;1 3 2 6 5 4;2 1 3 6 4 5; 1 1 2 3 4 5]
    soit
    1 2 3 4 5 6
    1 3 2 6 5 4
    2 1 1 6 4 5
    1 1 2 3 4 5

    je veux obtenir
    en faisant quelque chose comme: (inventé) tri(ex,3)
    2 1 1 6 4 5
    1 3 2 6 5 4
    1 1 2 3 4 5
    1 2 3 4 5 6

    ici je trie de façon croissante en fonction des valeurs de la 3e colonne de ma matrice...

    Concrètement j'ai des dates dans une de mes colonnes et je veux avoir mes données dans l'ordre chronologique

  4. #4
    Invité
    Invité(e)
    Par défaut
    Dans ce cas je confirme: utiliser la fonction sort:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ex=[1 2 3 4 5 6
        1 3 2 6 5 4
        2 1 1 6 4 5
        1 1 2 3 4 5];
    [~,idx] = sort(ex(:,3));
    ex(idx,:)

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    oops oui en effet ça marche à la perfection ; il me semblait que j'avais essayé pourtant...
    J'ai sûrement dû essayer alors que j'avais déjà modifier ma variable test avec un sort aléatoire...

    Merci!!

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

Discussions similaires

  1. Suppression doublon sans clé primaire
    Par qbihlmaier dans le forum Access
    Réponses: 6
    Dernier message: 21/03/2007, 11h53
  2. Trigger pour suppression doublons ds table
    Par lg_gaelle dans le forum PL/SQL
    Réponses: 2
    Dernier message: 18/10/2006, 16h53
  3. Suppression doublon Table
    Par francois78 dans le forum Access
    Réponses: 11
    Dernier message: 13/06/2006, 17h16
  4. Suppression doublons
    Par osmoze dans le forum Oracle
    Réponses: 2
    Dernier message: 26/04/2006, 14h17
  5. [MySQL] Problème de syntaxe dans suppression doublons
    Par fred23195 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 13/04/2006, 16h45

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