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 :

labels ou etiquettes pour faire des boucle "Tant que..."


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 21
    Par défaut labels ou etiquettes pour faire des boucle "Tant que..."
    Bonjour,

    j'aimerai connaitre s'il existe des labels ou des étiquettes pour les utilisées dans les boucle matlab.

    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    label    instruction 1
    instruction 2
    instruction 3
    if (condition)
       aller a label 
    end
    merci a tous

  2. #2
    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
    Tu veux dire une sorte de GOTO ?

  3. #3
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Par défaut
    Sous matlab, les 'nested functions' font cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function fun1
     
    for i=1:n
          fun2
    end
     
      function fun2
         % Instructions ...
      end
    end
    fun2 partage le workspace de fun1, ça peut jouer le rôle d'un GOTO ...

    ++

  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
    Vectorized goto in MATLAB | Loren on the Art of MATLAB

    penser à lire les commentaires surtout !
    => en fait cet article est un "easter egg", un poisson d'avril.
    GOTO est une commande qui n'existe pas et qui ne sera jamais implémentée dans MATLAB pour tout un tas de bonnes raisons que je ne m'étendrais pas à relater ici.

  5. #5
    Membre averti
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 21
    Par défaut
    merci les amis,

    mais le but c'est de répété une instruction tant que l'égalité n'est pas respecté, c'est basé sur la méthode de Newton itérative, et il faut faire des itération jusqu'à obtenir la meilleur approximation.

    exemple
    label a=b
    instruction1
    instruction2
    resultat b
    if (le nouveau b~=a)
    aller a label
    else ecrire b


    je m'excuse si je suis pas assez claire.

  6. #6
    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
    Normalement je pense que tu dois pouvoir le faire avec une instruction WHILE.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    a=...;
    b=...:
    while abs(b-a)>eps %tant que b différent de a à eps près
       instructions...
       calcul de b
    end
    %si on sort c'est que c'est ok
    disp(b);

  7. #7
    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 labels
    Peut-être que switch et case sont une solution ?

  8. #8
    Membre averti
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 21
    Par défaut
    bonsoir les amis,
    Merci caro95470, c'est très intelligent de votre part, on voit toute la finesse de la programmeuse, je vous tire mon chapeau vous êtes la


    je me suis heurté a un nouveau problème: comment écrasé un vecteur par un autre, de rang différents?

    ces problèmes de programmation, ça n'en fini jamais !!!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/06/2014, 17h47
  2. Réponses: 3
    Dernier message: 07/04/2014, 09h34
  3. Quel langage pour faire des boucles sous FTP ?
    Par Mourne dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 04/07/2007, 16h33
  4. [audio] logiciel pour faire des .au ?
    Par Seiya dans le forum Multimédia
    Réponses: 7
    Dernier message: 05/01/2005, 00h41

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