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 :

Recherche de max dans une structure


Sujet :

MATLAB

  1. #1
    Membre confirmé
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Points : 639
    Points
    639
    Par défaut Recherche de max dans une structure
    Bonjour,

    Je me demandais s'il est possible de retrouver un maximum dans une structure sans passer par une boucle qui vérifient tous les champs d'intérêt et également retrouver les champs qui "mènent" à cette valeur maximale.

    Un exemple simple : j'ai une structure avec plusieurs champs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mystruc=field1.field2.field3.field4
    Imaginons que les champs field1 soient des lieux, que field2 soient des méthodes, que field3 soient des options pour la méthode concernée, et que field4 soient des scores (admettons score1, score2, score3).

    Ce que je voudrais faire c'est retrouver le score1 le plus élevé pour chaque lieu et chaque méthode et que je puisse également retracer la méthode (donc field3) utilisée.

    J'ai un peu réfléchi tout de même et il me semble que structfun n'est pas adaptée pour ça. La seule solution que je vois c'est de faire plusieurs boucle pour parcourir tous les champs et garder dans une variable temporaire toutes les infos que je veux à propos du meilleur score1 trouvé.

    Merci !

    NB : les champs field1, field2 et field4 sont communs, ils ont la même longueur, etc. En revanche field3 dépend de field2...
    NB2 : si la méthode proposée permets aussi de comparer plusieurs mystruc, c'est grandement apprécié.

  2. #2
    Membre éclairé
    Homme Profil pro
    Doctorant automatique
    Inscrit en
    Janvier 2012
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Doctorant automatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 446
    Points : 719
    Points
    719
    Par défaut
    Bonjour,

    Le plus simple reste quand même de partir du début : ton sujet de travail.

    Dis moi si je me trompe : disons que tu as 10 lieux, et que pour chacun de tes lieux, tu as 10 méthodes, et que pour chacune de tes méthodes tu as 10 options, et que pour chacune de tes options tu as 10 scores. Est-ce correct ?

    Je te conseillerais d'enregistrer l'ensemble de tes 10 000 scores dans une matrice à 4 dimensions : 10x10x10x10. Tu cherches le max et tu récupères l'indice, qui te donnent donc le numéro du lieu, le numéro de la méthode et le numéro de l'option utilisée pour ce max. Tu as également le numéro du score, mais on s'en fout je pense.

    Pour comparer entre plusieurs "cas" (ou "mystruct"), bah tu itères l'opération sur les matrices.

    Cordialement,
    Je ne réponds pas aux MP techniques. Le forum est là pour ça.
    La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
    Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
    Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3

  3. #3
    Membre confirmé
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Points : 639
    Points
    639
    Par défaut
    Ok, donc ça confirme ce que je pensais, je dois itérer, il n'existe pas de fonction qu'il est possible d'appliquer directement sur les structures pour cet usage. Ça fonctionne parfaitement avec des itérations mais c'est un peu long (et pas très élégant).

    (Pour la suite, je ne pouvais pas mettre ça sous une matrice carrée, la longueur des champs varient en fonction du champ précédent, mais comme je suis intéressé seulement pas la meilleure valeur, je n'ai pas besoin de toutes les garder)

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

Discussions similaires

  1. Recherche de noeuds dans une structure filamentaire
    Par adriangarello dans le forum Traitement d'images
    Réponses: 9
    Dernier message: 28/04/2008, 14h23
  2. Recherche dans une Structure d'éléments semblables
    Par bernard6 dans le forum MATLAB
    Réponses: 1
    Dernier message: 27/07/2007, 14h28
  3. Recherche dans une structure XML::Simple
    Par nicolargo dans le forum Modules
    Réponses: 1
    Dernier message: 04/09/2006, 19h17
  4. Recherche d'un mot dans une structure
    Par Remedy dans le forum C
    Réponses: 28
    Dernier message: 25/05/2006, 23h37
  5. Recherche de l'identifiant max dans une table
    Par Asdorve dans le forum Langage SQL
    Réponses: 10
    Dernier message: 04/03/2005, 17h53

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