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 :

application de la fonction return


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 61
    Par défaut application de la fonction return
    Bonjour,

    en effet je veux appliquer la fonction return dans le programme ,ce que je veux c'est lorsque l'instruction if est vérifié ,la boucle for s'arréte à l'aide de l'instruction breaket de retourner vers l'étape juste avant la boucle for.

    Voilà une partie de mon programme:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    DEBUT
    for  va=[1:N]
    
        c=va;
        fid=fopen('valk.txt','w');
        fprintf(fid,'%i\n',c);
        fclose(fid);
    
    
        lb=[(-a*pi/180)+t1i,(-a*pi/180)+t2i,(-a*pi/180)+t3i,(-a*pi/180)+t4i];
        ub=[(a*pi/180)+t1i ,(a*pi/180)+t2i ,(a*pi/180)+t3i ,(a*pi/180)+t4i];
    
        t0=[0,0,0,0];;
    
        options = optimset('LargeScale','off');
    
        D=0;
    
        [t,D] =fmincon(@fctobj,t0,[],[],[],[],lb,ub,@fctcon,options);
    
        t1i=t(1);
        t2i=t(2);
        t3i=t(3);
        t4i=t(4);
        
        if (D==0)&(t1i~=0)&(t2i~=0)&(t3i~=0)&(t4i~=0)
            
            a=a+1;
            break;
            return %(Début) ;
        end
    
        t1f(va+1)=t(1);
        t2f(va+1)=t(2);
        t3f(va+1)=t(3);
        t4f(va+1)=t(4);
    
        dex(va)=abs(D);
    
    end
    j'ai vraiment besoin de cette information,merci d'avance.

  2. #2
    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
    RETURN n'est absolument pas fait pour ça, RETURN sert à sortir complètement d'une fonction ou d'un script.

    Tu cherches une sorte de "GOTO" ce qui n'existe pas en MATLAB.
    Tu peux essayer avec une boucle WHILE comme conseillé dans cette discussion : labels ou etiquettes pour faire des boucle "Tant que..."

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 61
    Par défaut
    merci tout d'abord pour ces bonnes explications,

    mais le problème c'est que pour mon cas je veux reprendre la boucle for avec une valeur différente de a dans le cas où l'instruction if n'est pas est vérifié,

    dans la discussion que tu m' a envoyée, la boucle While a remédié à son problème puisque lui avait comme objectif d'arrêter le programme dans le cas ou ces conditions ne sont pas satisfaites.

    est ce qu'il n'y a pas une autre solution,qui me permet de reprendre ma boucle for lorsque l'instruction if est assurée.

  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
    La boucle WHILE peut aussi remédier à ton souci.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    a=1;
    while a
       a=0;%arrêtera la boucle while sauf si on remet a à 1
       for i=1:5
          %trucs
          if <condition>         
             a=1; %il arrête la boucle for et revient dans le while
             break
          end
       end
    end

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 61
    Par défaut
    merci bcp,le pbm est résolu

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

Discussions similaires

  1. type et fonction return
    Par acacia dans le forum Débuter
    Réponses: 11
    Dernier message: 23/01/2008, 12h09
  2. fonction return () avec retour de plusieurs valeurs
    Par nuphius dans le forum Langage
    Réponses: 4
    Dernier message: 06/01/2007, 17h44
  3. fonctions return un TStringList cree avec new
    Par clovis dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/12/2006, 19h41
  4. fonction RETURNS SETOF RECORD et count(): erreur
    Par ctobini dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 23/10/2006, 15h39
  5. [POO] Retour de données par une fonction (return)
    Par webrider dans le forum Langage
    Réponses: 6
    Dernier message: 26/08/2006, 21h49

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