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 :

traitement données bien particulier


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 traitement données bien particulier
    Bonjour tous,

    j'ai utilisé il y a un petit moment une machine qui doit me donner un signal qui ressemble à un signal triangulaire. A présent, je veux visualiser les résultats avec matlab qui sont dans le fichier texte ci joint (fichier 'courbe.txt' que j'ai compressé).

    J'ai donc chargé mon fichier texte avec matlab et j'obtiens la courbe que j'ai mis en pièce jointe qui parait bien ressembler à un signal périodique quasi triangulaire (je changement d'amplitude à mi chemin est normal).

    mais en fait, si on zoom (image n°2 en PJ) alors on se rend compte que ma machine à bien sauvegardée la courbe que je souhaite mais elle a sauvegardé aussi une deuxième courbe

    Si on regarde la pièce jointe n°2 on voit en bleu les morceaux de courbes qui ne sont pas normaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    figure (1); hold on;
    data1=load('courbe.txt');
    plot(data1(:,1),data1(:,2),'-','linewidth',2)
    plot(data1(:,1),data1(:,2),'.r')
    voyez vous comment faire pour virer dans mon fichier texte les points qui apparaissent en bleu sur ma courbe ?

    moi je ne vois pas du tout ....

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Les données semblent avoir les même abscisses, avec la fonction unique donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [uData1 ia ic] = unique(data1(:,1));
    plot(uData1, data1(ia,2))

  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
    Citation Envoyé par Winjerome Voir le message
    Bonsoir,
    Bonsoir Jerome et merci beaucoup pour ton aide !
    Citation Envoyé par Winjerome Voir le message
    Les données semblent avoir les même abscisses, avec la fonction unique donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [uData1 ia ic] = unique(data1(:,1));
    plot(uData1, data1(ia,2))
    ça marche parfaitement
    par contre, ça m'interesse de savoir comment tu as remarqué ceci car même en bien le fichier je n'ai pas l'impression qu'il y a exactement les mêmes abscisses
    Citation Envoyé par Winjerome Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [uData1 ia ic] = unique(data1(:,1));
    plot(uData1, data1(ia,2))
    je n'ai pas totalement compris la fonction "unique" tel que tu l'utilise donc je me suis fais un petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    A=[1 2;
       2 2;
       3 2;
       4 2;
       4 8;
       5 2]
     
    [uData1 ia ic] = unique(A(:,1));
    Xnew=uData1
    Ynew=A(ia,2)
    je comprends que uData1 est le vecteur A(:,1) auquel on a enlever les premiers indices (pourquoi les premiers d'ailleurs et pas le second ? il y a moyen de changer ceci ?)

    et d'apres ce que j'ai compris de l'aide, si je fais :
    alors Xdepart est bien mon vecteur de depart.

    mais ce qui me semble bizarre c'est que ic à une taille plus grande que Xnew donc pourquoi je n'ai pas d'erreur qui dit que la taille de mon vecteur est trop petite ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par membreComplexe12 Voir le message
    par contre, ça m'interesse de savoir comment tu as remarqué ceci
    Visuellement, en zoomant et utilisant le datacursor.
    Citation Envoyé par membreComplexe12 Voir le message
    je comprends que uData1 est le vecteur A(:,1) auquel on a enlever les premiers indices (pourquoi les premiers d'ailleurs et pas le second ? il y a moyen de changer ceci ?)
    Paramètre 'first' / 'last' (défaut)
    Citation Envoyé par membreComplexe12 Voir le message
    mais ce qui me semble bizarre c'est que ic à une taille plus grande que Xnew donc pourquoi je n'ai pas d'erreur qui dit que la taille de mon vecteur est trop petite ?
    Petit passage de la doc
    Citation Envoyé par doc unique
    [C,ia,ic] = unique(A) also returns index vectors ia and ic, such that C = A(ia) and A = C(ic).
    C'est parce qu'il y a des indices en double, ceux que font des valeurs non-uniques
    Petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    unik = [1 2 3];
    ic = randi(3,1,10);
    unik(ic)

  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 Jerome pour tout
    je crois avoir bien saisi à présent

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

Discussions similaires

  1. Traitement données select
    Par Katachana dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 19/02/2008, 21h03
  2. [MySQL] Envoyer e-mail avec traitement données MySQL
    Par Little_flower dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/10/2007, 10h30
  3. traitement données bmp
    Par nicolovitch dans le forum Windows
    Réponses: 1
    Dernier message: 15/05/2007, 09h04
  4. Réponses: 2
    Dernier message: 29/01/2007, 14h14

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