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 :

Retenir valeurs d'un vecteur selon conditions [Débutant]


Sujet :

MATLAB

  1. #21
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    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
    for n=1:100
        if  x(n)>0.3
        1  > y(n)&y(n)>=0.9
        end
    %   note :comme j'ai eu un probleme pour stocker les resultats 'qui sont sous forme d'un vecteur logique'  dans le fichier txt j'ai changé le nom  en mettant res ???
       res=[]
        k=1
        for n=1:
            res(k)=ans(n)
            k=k+1
        end
        % je stocke mes valeurs dans un fichier txt
        fid =fopen(doc.'txt'.'wt');
        for k=1:100
            fprintf(fid,'%0.2f/t',res(k));
        end
        fprintf(fid,'\n');
        fcolse(fid);
    cela n'est que pour une seule condition et un intervalle !
    supprimer le msg si nécessaire c'était juste pour expliqué!! merci excusez_moi

  2. #22
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    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
    %% Premier et dernier intervalle
    idx1N3 = x<0.3 & y>=0.9 | 0.7<x& 0.2<y&y<0.3 % Indexage logique
    %% Deuxième intervalle
    x2 = x(0.3<=x & x<=0.7); % Sélection des valeurs x telles que 0.3<= x <=0.7 
    y2 = y(0.3<=x & x<=0.7); % Sélection des valeurs y telles que 0.3<= x <=0.7 
    inf = linspace(1,0.3,length(x2));   % Pente du dessus
    inf = interp1(linspace(0.3,0.7,length(x2)),inf,x2); % Ajustement par rapport aux valeurs de x2
    sup = linspace(0.9,0.2,length(x2)); % Pente du dessous
    sup = interp1(linspace(0.3,0.7,length(x2)),sup,x2); % Ajustement par rapport aux valeurs de x2
    idx2 = y2<sup | y2>inf; % Indexage logique
    plot(x,y,'+'),hold on
    plot(x2(idx2),y2(idx2),'g.')
    plot(x(idx1N3),y(idx1N3),'r.')
    plot([0 0.3 0.3 0.7 0.7],[0.9 0.9 1 0.3 1],'k:')
    plot([0.3 0.3 0.7 1],[0 0.9 0.2 0.2],'k:')
    voila se que j'obtiens avec le code de Winjerome

    alors que moi je veux eliminer les points bleus entre [0,0.3] les points verts entre [0.3,0.7] et les points bleus d 0.7à1 voila
    Images attachées Images attachées  

  3. #23
    Invité
    Invité(e)
    Par défaut
    Donc mon code fonctionne, il ne te reste plus qu'à faire ce que je t'ai déjà dis:
    Citation Envoyé par Winjerome Voir le message
    Si ça ne correspond pas tout à fait aux valeurs à retenir, tu as juste à mettre les bons signes et valeurs aux bons endroits.
    Au passage, les indexages logiques se font avec les variables idx1N3 et idx2 (qui correspondent aux intervalles 1,2,et 3).
    • Les points bleux sur le graphe sont les points de départ
    • Les points rouges correspondent à idx1N3
    • Les points verts correspondent à idx2
    Il suffit de lire mon code d'affichage.

  4. #24
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 36
    Points : 15
    Points
    15
    Par défaut rep
    IL A Fallu du temps xD mais je vous remercie pour votre aide!! et le code finale et bien est bon simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    % Premier  intervalle
    idx1 = x<0.3 & y>=0.9& y<1
     
    %le second intervalle 
    idx2= x >=0.3 &x<=0.7 & y<0.9 & y>0.2 
     
    %dernier intervalle 
    idx3=0.7< x& xt<1 & y>=0.2& y<0.3  
     
    plot(x(idx1),y(idx1),'+'), hold on 
     
    plot(x(idx3),y(idx3),'+')
    plot(x(idx2),y(idx2),'+')
    merci infiniment pour votre patience

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/02/2013, 10h04
  2. [2008] Changement de valeur d'une colonne selon condition
    Par jubourbon dans le forum SSIS
    Réponses: 3
    Dernier message: 08/03/2012, 18h14
  3. [CR 9] appel valeur selon condition formule
    Par perezlyon dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 16/02/2011, 14h19
  4. [PHP 5.3] Changement de valeur variable selon condition
    Par arthuro45 dans le forum Langage
    Réponses: 10
    Dernier message: 20/06/2010, 21h36
  5. Condition sur toutes les valeurs d'un vecteur
    Par Newenda dans le forum MATLAB
    Réponses: 2
    Dernier message: 11/06/2009, 15h50

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