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 :

Accès dynamique champ 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 Accès dynamique champ structure
    Bonjour,

    Imaginons que j'ai une structure comme
    je peux accéder à ma valeur en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mystruc.a.b % normal
    mystruc.('a').('b') % exemple idiot dans ce cas mais on peut imaginer que je stock le nom des champs a et b dans des matrices ou cell que j'évalue
    Comme le point est logiquement proscrit pour l'attribution des champs, j'aurais pensé ceci fonctionnerait :
    Mais pourtant non. Pourquoi ('a.b') n'est pas évalué comme ('a').('b') ?

    Dans mon problème, je voudrais pouvoir stocker le ou les champs d'intérêt dans une cell pour pouvoir les évaluer dans une boucle. Le nombre de champs dépend de l'indice dans ma boucle et le fait de pouvoir accéder à ma valeur par ('a.b') me simplifierait grandement les choses.

    merci !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Tout simplement car ('a.b') est considéré comme un champ unique et qu'un nom de variable avec un point n'est pas valide.

    Avec un nombre variable de niveaux, tu ne peux pas utiliser cette syntaxe de champ dynamique ici, il te faut revenir à l'utilisation de setfield/getfield :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    champs = {'a', 'b'};
    maStructure = setfield(struct(), {1}, champs{:} , 42);
    valeur = getfield(maStructure, {1}, champs{:});

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/08/2012, 17h10
  2. Champs dynamiques de structures
    Par sorrow08 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 22/05/2011, 15h00
  3. accès au champ d'une structure de structure
    Par darkwall_37 dans le forum Débuter
    Réponses: 0
    Dernier message: 20/04/2010, 22h15
  4. Problème d'accès à un champs d'une structure
    Par petdelascar dans le forum C
    Réponses: 7
    Dernier message: 05/04/2008, 20h12
  5. accés aux champs dynamiques ?
    Par bassim dans le forum Bases de données
    Réponses: 3
    Dernier message: 07/11/2005, 20h58

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