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 :

saut d'itération dans une boucle for


Sujet :

MATLAB

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 134
    Points : 134
    Points
    134
    Par défaut saut d'itération dans une boucle for
    Bonjour,

    Je vais surement poser une question idiote. Mais tant pis.
    Avec un exemple, ce sera plus clair. Je voudrais que ma boucle for aille de 1 à 10 en n'effectuant aucun traitement quand l'indice de la boucle vaut 3, 4 et 5.

    Pour ça je fais ceci...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for i=1:10
        disp(num2str(i));
        if i == 3
            i = 6;
        end
        % traitement
    end
    ... mais sans succès.

    j'obtiens ce résultat :
    1 2 3 4 5 6 7 8 9 10 
    
    alors que je voudrais :
    1 2 3 7 8 9 10 
    

    Est ce que qq pourrait m'indiquer la marche à suivre ?
    Je vous remercie.

  2. #2
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Matlab remet à jour l'indice dans une boucle, quoi que tu en fasses dans la boucle (voir l'explication qu'il t'affiche lorsque tu passes la souris sur le i de i = 6
    Utilise continue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for i=1:10
        if i >= 4 && i<=6
            continue;
        end
        disp(num2str(i));
        % traitement
    end

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ou une boucle while qui elle te permet de changer l'indice librement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    i = 1;
    while i<=10
        disp(num2str(i))
        if i == 3
            i = 6;
        end
        % traitement
        i = i+1;
    end
    Voire si tu connais tes sauts à l'avance :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i = [1:3 7:10]
        disp(num2str(i))
        % traitement
    end

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 134
    Points : 134
    Points
    134
    Par défaut
    Super, je vous remercie,

    J'allais utiliser le 'continue', mais ça ne me plaisait pas en terme de temps de traitements.

    Je vais tester les autres possibilités.

    Je vous remercie.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 17/07/2013, 10h06
  2. [Débutant] Changez l'indice d'itération dans une boucle for
    Par lekev62 dans le forum MATLAB
    Réponses: 5
    Dernier message: 18/11/2009, 14h16
  3. Problème avec une DLL dans une boucle For
    Par BraDim dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2005, 12h22
  4. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05
  5. Réponses: 3
    Dernier message: 06/07/2004, 10h21

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