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 :

Retirer ligne identique entre 2 vecteurs (ou +)


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 Retirer ligne identique entre 2 vecteurs (ou +)
    Bonsoir,

    Peut-être est ce l'heure tardive mais je n'arrive pas à supprimer dans un vecteur les valeurs qui sont présentes dans un autre:

    En gros j'ai 3 vecteurs: h h2 et h3
    h ce sont toutes mes données
    h2 et h3 sont 2 vecteurs contenant les valeurs de h à supprimer

    Voici ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ht=[]
    for i=1:length(h)
       if find(h2==h(i))| find(h3==h(i))
          %ne rien faire
       else
          ht=[ht h(i)];
       end
    end
    mais j'obtiens cette erreur:
    ??? Error using ==> or
    Inputs must have the same size.
    Le | ne semble pas fonctionner, j'ai essayé en sommant les find pour vérifier que ce n'est pas vide (isempty) mais ça n'a pas fonctionné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ~isempty(sum(find(h2==h(i)), find(h3==h(i))))
    mais j'obtiens alors:
    ??? Attempted to access h(2); index out of
    bounds because numel(h)=1.
    N'y aurait il pas un moyen plus simple de faire ça? Quoi faire pour qu'au moins ça fonctionne?
    Même si ça signifie faire 2 fois le processus, une fois pour h2 une fois pour h3

    Je précise que cette partie de code se trouve dans une boucle

    Merci par avance

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

    H? toutes tes données? Tu es sûr? Car selon l'erreur
    ??? Attempted to access h(2); index out of
    bounds because numel(h)=1.
    il n'y a qu'une valeur...

    Ton autre erreur est liée au fait que find(h2==h(i)) et find(h3==h(i)) ne retournent pas le même nombre d'éléments.
    à remplacer par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if any(h2==h(i)) || any(h3==h(i))
    Tu peux aussi regarder la fonction doc setxor

  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
    En effet il ne contient pas toutes mes données mais le résultat d'un prétraitement dans lequel je cherche à retirer des valeurs...

    Sinon avec any, j'obtiens la même erreur qu'avec ~isempty(find...)

    Je ne comprends pas le problème, ma boucle for ne dépasse pas la longueur de h, théoriquement ça ne devrait pas me poser de problème même si numel(h)=1, non?

    [EDIT] finalement c'est bon c'est moi qui me suis trompé dans mon code en voulant modifier h au lieu de ht créé pour ça... ça tourne ^^
    Merci

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

Discussions similaires

  1. [Gestion de fichiers] Lister les lignes identiques entre deux fichiers
    Par |Psk| dans le forum Utilitaires et Sécurités
    Réponses: 0
    Dernier message: 11/02/2015, 09h09
  2. Réponses: 2
    Dernier message: 03/05/2014, 15h10
  3. Retirer l'espacement entre deux lignes
    Par teddybox dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 07/10/2008, 18h36
  4. Réponses: 1
    Dernier message: 20/06/2007, 17h03
  5. Détecter les lignes identiques entre deux matrices
    Par totovich dans le forum MATLAB
    Réponses: 5
    Dernier message: 17/04/2007, 09h42

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