1. #1
    Membre du Club
    Femme Profil pro
    Doctorant
    Inscrit en
    mai 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2014
    Messages : 76
    Points : 57
    Points
    57

    Par défaut ismember sur des matrices

    J'ai 2 matrices:
    - M1, correspond à une matrice TIME complète [nx4] c'est à dire AAAA MM DD HH (Année mois jours heure) sans "trous"
    - M2, correspond à mes valeurs où ils manque des heures parfois des jours ... du type [mx5] c'est à dire AAAA MM DD HH VV (Année mois jours heure valeur)

    Pour chaque ligne (AAAA MM DD HH), si la ligne M1 est égale à la ligne M2 (sur les 4 première colonne) alors mettre VV dans M1 , sinon mettre un NaN dans M1.

    Je sais faire cette manip en utilisant ismember mais pour des vecteurs.
    Le code que j'effectue avec des vecteurs est le suivant (En considérant M1 un vecteur et M2 une matrice (nx2)):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Vec_Nan = NaN(length(M1(:,1)),1) % Création d'un vecteur NaN de la taille de M1 (Vecteur time complet)
     
    [M,N]=ismember(M1, M2) 
    Vec_Nan(M)=M2(:,2)
    Comment faire la même chose pour des matrices ? lorsque je fais Vec_Nan(M)=M2(:,5) cela ne marche pas. Je sais que mon erreur provient de [M,N]=ismember(M1, M2), cette commande appliquée aux matrices compare chaque valeurs mais pas chaque ligne.

    Merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    août 2007
    Messages
    4 632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2007
    Messages : 4 632
    Points : 6 635
    Points
    6 635

    Par défaut

    Bonjour,

    il suffit d'utiliser l'option 'rows' de ismember :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [M,N]=ismember(M1, M2,'rows')
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre du Club
    Femme Profil pro
    Doctorant
    Inscrit en
    mai 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2014
    Messages : 76
    Points : 57
    Points
    57

    Par défaut

    Merci, aussi simple que ça !

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

Discussions similaires

  1. c++ orienté objet sur des matrices
    Par beber005 dans le forum C++
    Réponses: 4
    Dernier message: 11/03/2012, 11h01
  2. Réponses: 3
    Dernier message: 04/01/2011, 15h05
  3. Réponses: 2
    Dernier message: 14/11/2008, 15h18
  4. Calcul sur des matrices
    Par Ptinéwik dans le forum MATLAB
    Réponses: 2
    Dernier message: 21/01/2008, 10h37
  5. Réponses: 4
    Dernier message: 19/02/2006, 18h18

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