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 :

[Débutant] Problème dans une boucle Matlab


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut [Débutant] Problème dans une boucle Matlab
    Bonjour,

    J'ai défini les variables suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    NombreVarF1=1
    NombreVarF2=2
    NombreVarF3=2
    NombreVarC1=1
    NombreVarC2=2
    NombreVarC3=2
    Et j'ai la boucle suivante:

    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
     
    for i=1:1:3
        k=int2str(i);
            switch ['NombreVarF',k]
                case 1
                    ezplot(['F',k])
                case 2
                    ezsurf(['F',k])
            end
            switch ['NombreVarC',k]
                case 1
                    ezplot(['C',k])
                case 2
                    ezsurf(['C',k])
            end
    end
    Qui devrait me tracer F1, F2, ou F3 sous forme de surface, si il y a deux variables dans la fonction ou sous forme d'un plot si il n'y en a qu'une...
    F1, F2 et F3 sont définies en symbolique.

    Ce code ne marche pas, il ne prend pas en compte la boucle, j'ai l'impression qu'il ne comprend pas ça : ['NombreVarC',k] Comment réaliser la concaténation?

    Est ce que quelqu'un pourrait m'aider?

    Merci

  2. #2
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Toutes mes excuses, je viens de trouver...
    Utilisation de l' eval... Je n'osais pas trop car quelqu'un m'a dit sur ce forum que l' eval est quelque chose de sale lorsque l'on programme dans Matlab et qu'il fallait éviter les "eval"...

  3. #3
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    Oui eval=evil.
    Il faut mieux éviter et il y a toujours une solution de contournement.
    Par exemple dans ton cas, tu pourrais utiliser les structures (je le fais que sur F) :
    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
    17
    18
    19
     
    NombreVar.F1=1
    NombreVar.F2=2
    NombreVar.F3=2
    %ou mieux :
    NombreVar.F=[1 2 2];
     
    %du coup :
    for i=1:3
        k=int2str(i);
            switch NombreVar.(['F',k])
    %ou dans le deuxième cas :
    %switch NombreVar.F(i) 
                case 1
                    ezplot(['F',k])
                case 2
                    ezsurf(['F',k])
            end
    end
    Pour les remarques sur eval voir : Générer un nom de variable
    Règles du Forum

    Adepte de la maïeutique

  4. #4
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Merci pour l'information et le lien, je vais utiliser ta méthode!

    donc le nouveau dicton du jour est :

    eval=evil

    Merci encore

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

Discussions similaires

  1. [débutant] Actions dans une boucle non effectuées
    Par Diegoooowwww dans le forum Caml
    Réponses: 10
    Dernier message: 31/12/2008, 20h56
  2. [Embedded Function] Problème dans une boucle FOR-END
    Par roilait dans le forum Simulink
    Réponses: 6
    Dernier message: 19/04/2008, 15h55
  3. problème dans une boucle
    Par tozy88 dans le forum Langage
    Réponses: 6
    Dernier message: 11/03/2008, 16h05
  4. [BASH] Problème dans une boucle IF
    Par coincoin22 dans le forum Linux
    Réponses: 3
    Dernier message: 16/08/2007, 10h34
  5. Problème dans une boucle
    Par Pitou5464 dans le forum Access
    Réponses: 5
    Dernier message: 11/08/2006, 15h51

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