forcer un programme matlab à sortir d'une boucle
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

forcer un programme matlab à sortir d'une boucle



  1. #1
    inviteb8477130

    forcer un programme matlab à sortir d'une boucle


    ------

    Bonjour,

    J'ai le code suivant pour vérifier si les élements d'un vecteur sont égaux, auquel cas je veux forcer le programme à s'arrêter s'il y'a deux élements égaux; or en utilisant un 'break' ça ne marche pas (du moins ds ce cas là);Voici mon programme:
    clc;clear
    X=[1 2 2 4 2];

    for i=1:length(X)
    for j=1:length(X)
    if j~=i

    if X(i)==X(j)
    i
    break

    end

    end
    end
    end
    Auriez vous une idée?? merci de votre aide!!

    H

    -----

  2. #2
    invitea29b3af3

    Re : forcer un programme matlab à sortir d'une boucle

    salut

    Si jamais utilise la balise CODE, c'est plus lisible:
    Code:
    for i=1:length(X)
        for j=1:length(X)
            if j~=i
                if X(i)==X(j)
                    i
                    break
                end
            end
        end
    end
    Ton problème c'est que tu as 2 boucles, pas qu'une. Donc ton break fait sortir de la première mais pas de la 2e. Donc fais quelque chose du genre:
    Code:
    sortir=0;
    for i=1:length(X)
        for j=1:length(X)
            if j~=i
                if X(i)==X(j)
                    i
                    sortir=1;
                end
            end
            if sortir==1
               break
            end
        end
        if sortir==1
            break
        end
    end

  3. #3
    inviteb8477130

    Re : forcer un programme matlab à sortir d'une boucle

    Ca marche, merci beaucoup de votre aide!!

  4. #4
    inviteb8477130

    Re : forcer un programme matlab à sortir d'une boucle

    J'ai une autre question également, si vous pouvez m'aider...

    J'ai une matrice Mat de taille 60*6...je souhaite faire un 100 tirage aléatoire sur les lignes de cette matrice et remplir ainsi 100 matrice de taille 10*6...j'ai essayé le programme suivant:


    for i=1:100
    l=randi(size(Mat,1),1,10); % tirage aléatoire sur les lignes
    s0(i).Mat=Mat(l, ; % je remplis une matrice (au sein d'une structure s0) avec les vecteurs selectionnés

    end
    Mais le problème, c'est qu'en faisant ainsi, j'ai des tirages avec remise...j'ai par exemple l=[ 1 4 55 8 5 55 47 8 6 55]...l'indice d'une ligne peut apparaitre plusieurs fois dans mon tirage ce qui peut biaiser mes résultats...C'est pour cela que j'ai voulu comparer les éléments de l, et sortir du programme quand il sont égaux...le programme précédent fais cela...
    sortir=0;
    for i=1:length(X)
    for j=1:length(X)
    if j~=i
    if X(i)==X(j)
    i
    sortir=1;
    end
    end
    if sortir==1
    break
    end
    end
    if sortir==1
    break
    end
    end
    mais quand je l'insère dans le premier code, ca donne des résultats incorrectes....POURRIEZ vous svp m'aider, c très urgent, je dois présenter les résultats ce soir!!!


    Merci bcp

  5. A voir en vidéo sur Futura
  6. #5
    invitea29b3af3

    Re : forcer un programme matlab à sortir d'une boucle

    Salut
    désolé de répondre que maintenant, j'espère que c'est pas trop tard, mais je suis pas chez moi la journée...
    Utilise simplement la fonction randperm. Par exemple vec=randperm(60) te génère un vecteur "vec" avec les nombre de 1 à 60 rangés aléatoirement. Donc après tu fais vec = vec(1:10) et c'est bon, tu as ta variable "l", pas besoin de tout ton code

    PS: pour le code, utilise la balise (CODE) (le symbole #), pas les citations (QUOTE).

Discussions similaires

  1. matlab, boucle for
    Par aureo91 dans le forum Mathématiques du supérieur
    Réponses: 10
    Dernier message: 27/04/2010, 15h10
  2. Programme Matlab: Forcer la symétrie?
    Par invitebf68775b dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 12/03/2009, 13h46
  3. Optimisation boucle Matlab.
    Par invite01e6eb40 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 13/04/2007, 12h50
  4. MATLAB-pb d'initialisation de boucle
    Par invite230d05f5 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 20/07/2005, 16h08
  5. sortir d'une boucle en matlab
    Par invite5588902a dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 06/10/2004, 15h04