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 :

n boucles for imbriquées


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut n boucles for imbriquées
    Bonjour tout le monde,

    Je dois réaliser un programme et le seul moyen que j'ai trouvé pour le faire est d'utiliser n boucles for imbriquées (sachant que n est une variable bien sûr) mais je n'ai aucune idée de comment faire cela, ni même si c'est possible sur Matlab. Est-ce que vous avez une idée ?

    Merci d'avance et bonne journée !

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    pourrais-tu nous montrer un exemple de boucles à imbriquer?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Voilà la boucle for que j'ai :


    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:N-1
    		if iN(i)==nbrmirror 
    			poss(nbrmirror)=i; % Sauvegarde de i qui est une coordonnées d'un miroir
    			possdtot(nbrmirror)=DtotN(i); % Sauvegarde de la distance parcourue par le rayon du miroir i
     
    			nbrmirror=nbrmirror+1;
      			i=i+1;
     
    		elseif iN(i)==nbrmirror-1 % pas bon
    			i=i+1;
     
    		else iN(i)==nbrmirror+1	 % Pas bon 
    			printf ('Some mirrors are missing');
     
    		end
    	end

    Et je voudrais que mon programme fasse n boucles for imbriquées, par exemple pour n=3 je voudrais qu'il fasse :


    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
    20
    21
    22
    23
    for j=1:N-1 % Première boucle for
     
    	for k=1:N-1 	% Deuxième boucle for
     
    		for i=1:N-1		% Troisème boucle for
     
    			if iN(i)==nbrmirror
    				poss(nbrmirror)=i;             % Sauvegarde de i qui est une coordonnées d'un miroir
    				possdtot(nbrmirror)=DtotN(i);            % Sauvegarde de la distance parcourue par le rayon du miroir i
     
    				nbrmirror=nbrmirror+1;
    				i=i+1;
     
    			elseif iN(i)==nbrmirror-1 % pas bon
    				i=i+1;
     
    			else iN(i)==nbrmirror+1	 % Pas bon 
    				printf ('Some mirrors are missing');
     
    			end
    		end	
    	end	
    end
    J'espère avoir été assez claire, je suis vraiment bloquée par ce problème.
    Merci d'avance d'y jeter un coup d'oeil !
    Edit : Désolé pour l'indentation, elle est pas passée...

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    je pense que tu prends ton problème du mauvais bout :
    il faut je pense plutôt se diriger vers une fonction récursive
    si tu fait une fonction récursive contenant une boucle et s'appelant elle même au sein de cette boucle, tu obtiens des boucles imbriqués dont le nombre est variable

    fabien

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Pour le moment ton code est indépendant des variables j et k donc les deux boucles sur j et k n'ont aucun effet, tu exécutes j*k fois la même boucle.

    De plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		elseif iN(i)==nbrmirror-1 % pas bon
    			i=i+1;
    Cette condition qui incrémente i n'a aucun effet: tu ne peux pas agir ainsi sur la variable d'incrémentation d'une boucle for. Regarde ce que renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i=1:10
        i = i+2
    end
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Ah oui merci ! Je ne connaissais pas l'existence des fonctions récursives mais tu as raison, il faut que j'en utilise une. Merci beaucoup !

Discussions similaires

  1. Boucles for imbriquées
    Par The eye dans le forum ASP
    Réponses: 2
    Dernier message: 19/07/2007, 12h00
  2. Boucle for imbriqué
    Par boula dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 18/07/2007, 12h42
  3. 2 boucles for imbriquées
    Par karimphp dans le forum Langage
    Réponses: 8
    Dernier message: 02/12/2006, 14h46
  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. [Syntaxe] Boucle For imbriquées en 1.5
    Par Piolet dans le forum Langage
    Réponses: 5
    Dernier message: 09/01/2005, 00h49

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