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 :

Nom de variable dans une boucle


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Par défaut Nom de variable dans une boucle
    Bonjour,

    J'ai une petite question toute bête mais que je n'arrive pas à résoudre.

    Je voudrais réaliser une opération sur des variables qui se se nomment presque de la même façon (sparfmay, sparsmay, splifmay, splifjun, etc), en fait faire une boucle du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for i = [arfmay, arsmay,lifmay,lifjun]
    stat"i" = statistics (sp"i")
    endfor
    qui me crée des variables statarfmay, statarsmay, ... pour chaque sparfmay, ...

    Merci d'avance

  2. #2
    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 : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Bonjour,

    Tu devrais aller voir dans la FAQ il y a un article qui traite justement de ce genre de problème (je n'y ai pas accès là donc je peux pas donner le lien )

    Sinon ca donne à peu près:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    suffix = {'arfmay', 'arsmay','lifmay','lifjun'};
     
    for i = 1:length(suffix)
    stat{i} = statistics (['sp', suffix{i}])
    end
    Bonne apm,
    Duf

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Par défaut
    Bonjour.
    Un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    clear
    base=['arfmay' ;'arsmay';'lifmay' ;'lifjun']
    stat=[''];
    for i = 1:size(base)
    stat(i,:) = ['stat' base(i,:)]
    end

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par duf42 Voir le message
    Tu devrais aller voir dans la FAQ il y a un article qui traite justement de ce genre de problème (je n'y ai pas accès là donc je peux pas donner le lien )
    => Comment créer des variables nommées A1, A2, A3, ...,AN ?

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Par défaut
    Bonjour,

    J'ai essayé de mettre dans mon programme quelquechose qui ressmeble à ce que Duf 42 m'a indiqué.
    ça me retourne une syntax error à la fin du endfor, je comprend pas trop pourquoi ...

    Est ce que le correspond pour lui à par exemple sparfmay ?
    Sinon pour créer une variable avarfmay, il faut une commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ['av', suffix(i)] = ...
    ?

  6. #6
    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 : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Pourrais-tu nous montrer ton code?

    On ne peut pas créer une variable comme celà, si tu veux créer des variables avec des noms paramétrés, il faut utiliser la fonction EVAL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    eval(['av', suffix(i), '= 12;']);

  7. #7
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Par défaut
    En enlevant tout se qu'il y a autour, le code ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    suffix = {'arfmay', 'arsmay'};
    for i = 1:length(suffix)
    stat{i} = statistics (['sp', suffix{i}];
    endfor

Discussions similaires

  1. Attribuer des noms de variables dans une boucle
    Par sanguisorbe dans le forum Langage
    Réponses: 8
    Dernier message: 13/06/2014, 15h42
  2. Noms des variables dans une boucle SAS
    Par Imfafa dans le forum Débutez
    Réponses: 13
    Dernier message: 26/05/2011, 13h42
  3. changer le nom des variables dans une boucle
    Par bakaratoun dans le forum MATLAB
    Réponses: 3
    Dernier message: 05/02/2010, 13h50
  4. [MySQL] Des noms de variables dans une boucle
    Par nicolas2603 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 25/08/2009, 14h51
  5. Nom de variable dans une boucle
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 16/05/2008, 16h24

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