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 la place d'un élément dans une matrice


Sujet :

MATLAB

  1. #1
    Membre régulier Avatar de Pierrot92320
    Homme Profil pro
    Ingénieur en retraite (électronique)
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur en retraite (électronique)
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Points : 119
    Points
    119
    Par défaut Trouver la place d'un élément dans une matrice
    Bonjour

    T est un tableau 6x2 de chaînes de caractères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    T = {...
        'maître', 'corbeau';
        'sur',    'un';
        'arbre',  'perché';
        'tenait', 'en';
        'son',    'bec';
        'un',     'fromage'};
    t est une chaîne de caractères :
    L'instruction x = ismember(t, T) m'apprend que t appartient au tableau T :
    x = 1

    L'instruction M = strcmp(t, T) me fournit même une matrice booléenne 6x2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    M = [...
        0  0
        0  0
        0  1
        0  0
        0  0
        0  0]
    Mais pourriez-vous me dire s'il y a une instruction qui renvoie les coordonnées i, j de t dans T ? (c'est à dire [3 2] dans le cas présent).

    Merci de votre aide,
    Pierre

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Il faut utiliser la fonction FIND:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find(strcmp(t, T));
    Bonne journée,
    Duf

  3. #3
    Membre régulier Avatar de Pierrot92320
    Homme Profil pro
    Ingénieur en retraite (électronique)
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur en retraite (électronique)
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Points : 119
    Points
    119
    Par défaut
    Super merci Duf.

    Pierre

  4. #4
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    >> T = {'maître', 'corbeau';
        'sur',    'un';
        'arbre',  'perché';
        'tenait', 'en';
        'son',    'bec';
        'un',     'fromage'};
     
    t = 'perché';
     
    find(strcmp(t, T))
    ans =
         9
    "9" , mais je crois que c'est à la "3" colonne "2" => normalement "6"

  5. #5
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    OK, c'est par rapport au vecteur (T(). donc :
    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
     
     
    T = 
        'maître'    'corbeau'
        'sur'       'un'     
        'arbre'     'perché' 
        'tenait'    'en'     
        'son'       'bec'    
        'un'        'fromage'
     
    ix =
         3
     
    iy =
         2

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/04/2013, 19h48
  2. [Débutant] trouver l'index d'un élément d'une matrice
    Par Bubulle31 dans le forum MATLAB
    Réponses: 4
    Dernier message: 24/08/2011, 16h38
  3. rassembler des éléments dans une matrice
    Par frenchero dans le forum MATLAB
    Réponses: 1
    Dernier message: 10/11/2009, 13h02
  4. Réponses: 10
    Dernier message: 11/03/2009, 17h30
  5. Réponses: 3
    Dernier message: 17/12/2008, 11h49

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