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 :

Table de hashage


Sujet :

MATLAB

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 152
    Points : 109
    Points
    109
    Par défaut Table de hashage
    Bonjour,
    J'éssai d'implémenter une table de hashage sous ML. Mes clés sont des vecteurs de double [a,b] et les valeurs sont des double c (ou un vecteur de double si la même clé à plusieurs valeurs)

    Alors dans la déclaration de ma structure, j'ai supposé que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this = struct('keys', [], 'values', []);
    Vous pouvez me proposer les méthodes add et get ?

    Merci et bonne journée!

  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,

    pour ceux qui n'y connaisse rien en table de hashage (comme moi), peux-tu expliquer rapidement le fonctionnement des méthodes add et get (que sont-elles supposées faire?)
    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
    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,

    Dans ton cas, ce qui serait le plus proche d'une table de hashage serait sans doute d'utiliser un tableau de structure, donc pour les add et get, il te faut coder les fonctionnalités toi-même en utilisant les propriétés des structures.

    Un exemple rapide:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function add(key,value)
     
    if ~ismember(key,{table.key})
        table = [table, struct('key',key,'value',value)];
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function value = get(key)
     
    if any(strcmp({table.key},key))
        value = table(strcmp({table.key},key)).value;
    else
        value = [];
    end
    C'est l'idée générale mais je pense qu'il te faudra un peu l'adapter pour ton besoin...

    Duf

    EDIT: Dans mon exemple la table de hashage se nomme table avec les champs key et value
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 152
    Points : 109
    Points
    109
    Par défaut
    Bonjour magelan

    Alors table de hachage...
    En fait c'est une structure qui associe à chaque clé une ou un ensemble de valeurs.
    Par exemple, ma table MyHashTable

    Clé----- Valeurs
    1--------18
    9--------11
    6--------20

    J'ajoute à ma table la clé 5 de valeur 35 j'aurais :

    Clé----- Valeurs
    1--------18
    9--------11
    6--------20
    5--------35

    Si j'ajoute une clé déjà existante, par exemple, j'ajoute la clé 1 de valeur 37, je vais avoir :

    Clé----- Valeurs
    1--------18, 37
    9--------11
    6--------20
    5--------35

    Voila, pour l'ajout. Pour la récupération des valeurs, c'est simple:
    MyHashTable(6) renvoi 6
    MyHashTable(1) renvoi 18 et 37

    Dans mon cas, les clés sont des vecteurs, et mes valeurs des valeurs simples:

    Clé-----Valeurs
    [1,4]---6
    [2,9]---9

    Si j'ajoute la clé [1,4] de valeurs 11 j'aurais :

    Clé-----Valeurs
    [1,4]---6,11
    [2,9]---9

    J'espère avoir été assez claire!

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2007, 16h13
  2. Comparaison table de hashage
    Par aikinhdo dans le forum Langage
    Réponses: 3
    Dernier message: 11/04/2007, 17h23
  3. Problème de pointeur sur une table de hashage
    Par nicdesf dans le forum Langage
    Réponses: 3
    Dernier message: 07/09/2006, 19h23
  4. Table de hashage
    Par ByBoN dans le forum C
    Réponses: 5
    Dernier message: 04/06/2006, 17h06
  5. [VB6] table de hashage
    Par Cirdan Telemnar dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 23/05/2006, 14h15

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