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 :

Evaluation avec cellfun -acceder champs d'une structure


Sujet :

MATLAB

  1. #1
    Membre éprouvé
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Par défaut Evaluation avec cellfun -acceder champs d'une structure
    Salut a tous et merci pour lire ma question!

    Je veux acceder a des champs d'une structure nomme example en utilisant la fonction cellfun.


    J'ai comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>example.a = [1,1];
    example.b = 1;
    example.c = 1;
    example.d = 1;
    fields = {'a','d'};
    Je veux obtenir:

    {[1.1] ; 1} ...

    J'ai essaye simplement ca et ca marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fields = {example.a,example.d}
    Mais mon but c'est d'utiliser la fonction cellfun et je n'ai pas bien compris que signifie 'uni' et si j'obtiens bien ce que je veux ou non:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    >>  resultat =cellfun(@(x) example.(x),fields,'uni',false).'
     
    resulat = 
     
        [1x2 double]
        [         1]
     
    >>

  2. #2
    Membre Expert
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Par défaut
    beh uni c'est la contraction du paramètre "UniformOutput."
    C'est dans la doc de cellfun que ce paramètrre est expliqué.
    de toute façon MATLAB t'indiquera en message d'erreur d'utiliser UniformOutput avec la valeur logique false si tu ne l'as pas mis et que ce ne sont pas des scalaires que tu passes à la fonction en argument de cellfun.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    resultat =cellfun(@(x) example(x),fields,'uni',false).';
    celldisp(resultat)
    retourne

    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
    16
    resultat{1} =
     
    1x2 struct array with fields:
        a
        b
        c
        d
     
     
     
    resultat{2} =
     
        a: [1 1]
        b: 1
        c: 1
        d: 1

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

Discussions similaires

  1. affecter d'un champ d'une structure imbriquée
    Par beb1982 dans le forum Débuter
    Réponses: 10
    Dernier message: 10/08/2007, 19h21
  2. Comment écrire dans le champ d'une structure?
    Par JRmon42 dans le forum MATLAB
    Réponses: 2
    Dernier message: 04/04/2007, 13h16
  3. ordre des champs dans une structure
    Par oussema dans le forum C
    Réponses: 8
    Dernier message: 08/03/2007, 19h42
  4. Adresse/offset du champs d'une structure
    Par ludo894 dans le forum C
    Réponses: 29
    Dernier message: 24/01/2007, 11h58
  5. Réponses: 4
    Dernier message: 10/04/2006, 10h28

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