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 :

trouver l'index d'un élément d'une matrice [Débutant]


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 45
    Par défaut trouver l'index d'un élément d'une matrice
    Bonjour à tous,

    J'ai 2 matrices a(n,3) et b(m,2) (n différent de m).

    J'aimerais programmer l'idée suivante:

    pour chaque élement de a, si a(i,1) existe dans b(:,1), alors je veux que a(i,3)=b(j,2), avec j la ligne à laquelle se trouve l'élément a(i,1) dans b(:,1).

    Le problème est que je ne sais pas comment trouver cet indice j.

    Quelqu'un saurait-il comment faire?

    Merci d'avance!

  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
    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 averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 45
    Par défaut
    J'ai déjà creusé du côté de la fonction find, mais j'ai toujours un message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for i = 1:length(compteurh(:,1))
        if any(compteurh_all(:,1) == compteurh(i,1))
            [n,m] = find(compteurh_all(:,1) == compteurh(i,1));
            compteurh(i,3) = compteurh_all(n,2);
        end
    end
    (compteurh est l'équivalent de mon a précédent, et compteurh_all est celui de b)

    et je reçois le message d'erreur:
    subscripted assignment dimension mismatch
    error in compteurh(i,3) = comtpeurh_all(n,2)

  4. #4
    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
    Par défaut
    voir la pour comprendre le message d'erreur.

    Apparemment, n contient plusieurs valeurs, c'est à dire que find a trouvé plusieurs fois compteurh_all(:,1) dans compteurh(i,1). Quel indice veux-tu conserver? Si tu veux garder que le premier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    n = find(compteurh_all(:,1) == compteurh(i,1),1);
    compteurh(i,3) = compteurh_all(n,2);
    De plus m est inutile ici puisque tu cherches une valeur dans un vecteur.
    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.

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 45
    Par défaut
    Bon alors mon problème est ailleurs alors...mes deux matrices sont obtenues avec la fonction tabulate, donc normalement chaque élément ne devrait apparaître qu'une fois dans la matrice compteurh_all.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/04/2013, 19h48
  2. Désigner un identifiant/index pour des éléments d'une série
    Par OSryx dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 28/09/2010, 13h47
  3. Trouver la place d'un élément dans une matrice
    Par Pierrot92320 dans le forum MATLAB
    Réponses: 4
    Dernier message: 31/05/2009, 09h59
  4. [HTML 4.0] Est-il possible de connaitre l'index d'un élément d'une liste déroulante ?
    Par beegees dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 01/05/2009, 20h53
  5. Réponses: 2
    Dernier message: 26/07/2006, 12h46

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