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 :

probleme avec boucle + conditions [Débutant]


Sujet :

MATLAB

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut probleme avec boucle + conditions
    Bonjour tous,

    J'ai un léger probleme mais je n'arrive pas à voir d'où ca vient...
    j'ai une matrice à deux colonne et dont je veux garder les lignes seulement si la premiere colonne est egale à celle d'un autre vecteur

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    zzz=1;
    for n=1:1:length(pression);
    for p=1:1:length(tempsH);
    if pression(n,1)==tempsH(p);
    temps_et_pression_exp(zzz,1)=pression(n,1);
    temps_et_pression_exp(zzz,2)=pression(n,2);
    else
    end
    end
    zzz=zzz+1;
    end
    En sortie voila le type de resultat que j'ai:

    1 34
    0 0
    2 4
    3 5
    0 0
    0 0
    0 0
    2 99

    En fait je ne comprends pas pourquoi j'ai des lignes avec des 0 qui apparaissent?

    J'espere que vous pourrez m'aider

  2. #2
    Membre éclairé Avatar de tubaas
    Homme Profil pro
    Acousticien
    Inscrit en
    Août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 641
    Points : 825
    Points
    825
    Par défaut
    salut
    tu incrémentes zzz à tous les cas donc tu te retrouves avec un vecteur de même longueur que pression. pour les zzz où tu n'indiques rien Matlab met 0 par défaut
    une solution pas belle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    zzz=1;
    for n=1:1:length(pression);
    for p=1:1:length(tempsH);
    if pression(n,1)==tempsH(p);
    temps_et_pression_exp(zzz,1)=pression(n,1);
    temps_et_pression_exp(zzz,2)=pression(n,2);
    zzz=zzz+1;
    end
    end
    end

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci beaucoup de ta réponse

  4. #4
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    Déjà si vous indentiez votre code on y verrait plus clair
    (CTRL+A puis CTRL+I ça prend 2 secondes et c'est tellement plus facile à lire après)

    Ensuite il y a surement une façon simple et rapide de faire avec FIND.

    Si j'ai bien compris pression est de taille n*2et tempsH de taille n*1 (ou 1*n ce qui ici n'est pas très important) ?

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    %indices des éléments de la colonne 1 de pression égaux à taille :
    idx = find(pression(:,1) == temps);
    temps_et_pression_exp = pression(idx,:);
    On peut peut-être même se débrouiller avec l'indexage logique mais n'ayant pas MATLAB pour tester je préfère ne pas dire de bêtises.
    Règles du Forum

    Adepte de la maïeutique

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci beaucoup de la reponse, en effet je ne connaissais pas...

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

Discussions similaires

  1. [Débutant]problemes avec mes conditions
    Par Rafsky dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2007, 13h02
  2. probleme avec boucle
    Par guadian dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/06/2007, 22h50
  3. Probleme avec les conditions If-- Then
    Par visualk dans le forum Delphi
    Réponses: 15
    Dernier message: 24/05/2007, 09h34
  4. [SI] : probleme avec la condition
    Par camzo dans le forum Excel
    Réponses: 2
    Dernier message: 28/03/2007, 11h28
  5. Réponses: 2
    Dernier message: 19/11/2006, 10h54

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