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 :

ismember sur des matrices


Sujet :

MATLAB

  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

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    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. API pour effectuer des opérations sur des matrices
    Par Mobius dans le forum API standards et tierces
    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