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 :

Deux boucles for


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Chercheur
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Deux boucles for
    Bonjour,

    je voulais faire deux boucles for l'une dans l'autre pour incrémenter deux variables, sauf que l'exécution ne prends pas en considération le deuxième boucle, comment faire ?

    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 j=0.001:0.01:0.09
        unit=Mcata/(Lcol/j);
        vol=V/(Lcol/j);
        for i=0.001:0.1:17.05
            A= kd*as*(i-Ch2ex)*vol;
            B=Coeff*KH*i/((1+(KH*i)^0.5)^2)*unit;
            if  (((A-B)/A)^2<=0.0001);
                Csu=i
                break;
     
            end
     
            [j,Ch2ex]=ode45(@funct2,[1e-3 9e-2],[17.05]);
     
        end
    end
    Merci.

  2. #2
    Invité
    Invité(e)
    Par défaut


    Tu entends quoi exactement par :
    Citation Envoyé par souma69 Voir le message
    l'exécution ne prends pas en considération le deuxième boucle
    ?

    Évite d'utiliser ta variable itérative j pour stocker un résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for j=0.001:0.01:0.09
    
            [j,Ch2ex]=ode45(@funct2,[1e-3 9e-2],[17.05]);
    De plus la ligne [j,Ch2ex]=ode45(@funct2,[1e-3 9e-2],[17.05]); ne dépend d'aucun paramètre des boucles.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Chercheur
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    le programme incrémente uniquement le j et pas le i
    d'ailleurs il m'affiche pas aucun valeur de i ?
    comment je peux éviter d'utiliser ma variable j pour stocker le résultat ?

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 352
    Points
    352
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for j=0.001:0.01:0.09
     
            [j,Ch2ex]=ode45(@funct2,[1e-3 9e-2],[17.05]);
     
     
    end
    tu modifies ta variable j dans la boucle for
    cependant dès que tu passe a l'itération suivante la mise a jour de la variable j est annulée.

    en gros quand tu lance une boucle for matlab génère un tableau de tes indices. a chaque itération il va chercher la valeur de l'indice dans le tableau donc si tu l'as modifié dans l'itération d'avant ça ne sert a rien

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for i=1:10
    i=i+1;
    disp(i);
     
    end% en théorie tu devrai afficher 2 4 6 8 10  mais en matlab tu veras 2 3 4 5 6 7 8 9 10 11
    solution : boucle while!

    je pense que ton pb viens de la

Discussions similaires

  1. Sortir de deux boucles FOR-END imbriquées
    Par Nabuchodonosor15 dans le forum MATLAB
    Réponses: 5
    Dernier message: 31/08/2009, 09h58
  2. Deux boucles for + un effet de bord ?
    Par Teufboy dans le forum Langage
    Réponses: 2
    Dernier message: 21/12/2007, 08h08
  3. Réponses: 3
    Dernier message: 24/05/2007, 17h56
  4. Batch - Deux boucle For imbriquées plus un FC
    Par Lorponos dans le forum Windows
    Réponses: 17
    Dernier message: 27/07/2006, 14h58
  5. comment quitter deux boucles for?
    Par davmaster62 dans le forum Général Python
    Réponses: 2
    Dernier message: 08/03/2006, 00h16

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