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 :

Génération automatique de noms de variables


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut Génération automatique de noms de variables
    Bonjour

    Il me semble que la question a déjà été posée mais je ne trouve pas le sujet


    Pour faire simple, j'ai besoin de générer de façon automatiser un certain nombre de variables et de leur donner des noms. J'ai par exemple une variable indiceMax et je veux créer des variables dont les noms seraient de la forme hFig_n,où _n est l'indice de la variable de 1 à indiceMax, et donc obtenir hFig1, hFig2, hFig3...

    L'idée serait de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for n=1:indiceMax
         hFig_  =  ...(initialisation de ma variable)
    end;

    Merci beaucoup !

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 90
    Par défaut
    Bonjour,

    voila ce que je ferai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    n=20; %nombre de variable a creer
    nom='hFig_'; %nom a donner a tes variables
     
    for i=1:n
        c=[nom num2str(i) '=0']; %initialisation de tes variables
        eval(c)
    end
    il y a surement plus beau, plus propre, plus mieux.

  4. #4
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    @chris05 : voir mon post juste au-dessus
    Il ne faut surtout surtout pas faire cela.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 90
    Par défaut
    effectivement !

    j'aurais également privilégié un tableau de cellule ou matrice, mais Bktero ayant demandé des variables distinctes...

    Il est vrai que cela entrainera des difficultés dans l'analyse du code (appelle des varibles créées) et une perte d'efficacité avec l'évaluation constante de chaines de caractères.

    Bktero, suit les conseils du lien de caro-line ^^

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    C'était dans la FAQ.... Je suis vraiment un gros noob (>_<)

    Je vais lire ça.

  7. #7
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Après avoir lu la FAQ et les liens, je ne comprenais pas comment m'en sortir avec l'histoire de tableau. Je revenais donc ici pour poser des questions quand je vois un post de Chris que je n'avais pas lu (il a du le poster quand je tapais le mien et j'ai mis longtemps avant de cliquer sur "envoyer la réponse").

    Et je comprend en fait qu'il ne faut pas créer plusieurs noms de variables, mais faire un tableau de variables et y accéder grâce à l'index... J'ai été long à la détente sur ce coup là... Du coup, mon code deviendrait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for n=1:indiceMax
         hFig(n)  =  ...(initialisation de ma variable)
    end;
    si j'ai tout bien compris ?


    EDIT : si mes variables sont des handles vers des objets graphiques, à priori de types différents, est ce que tous les handles seront de même type et de même dimension ? Ie, faudra t-il utiliser une matrice ou un tableau de cellules ?

  8. #8
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Un handle est tout simplement un double (numérique) donc tu peux utiliser un tableau de doubles tout simplement.
    Le code que tu as mis devrait fonctionner (à moins que tu ne crées plusieurs objets à la fois dans ton initialisation)

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

Discussions similaires

  1. Incrémenter automatiquement des noms de variables ?
    Par Cycy19 dans le forum Langage
    Réponses: 2
    Dernier message: 29/12/2014, 10h12
  2. Réponses: 11
    Dernier message: 09/03/2009, 21h43
  3. Génération automatique de noms de fichiers
    Par Invité dans le forum Langage
    Réponses: 7
    Dernier message: 02/05/2008, 09h41
  4. Réponses: 5
    Dernier message: 10/04/2008, 19h07
  5. Evolution automatique du nom d'une variable
    Par kevinl dans le forum MATLAB
    Réponses: 2
    Dernier message: 22/03/2007, 14h37

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