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 :

alignement de courbes


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    Par défaut alignement de courbes
    Bonjour à tous,

    j'ai un signal que je décompose en 12 courbes, qui sont a peu près identiques mais pas tout à fait... Lorsque je les superpose, j'aimerais que le maximum de chaque courbe se trouve au même endroit que le maximum de la première courbe. Cela implique donc une sorte de translation pour chaque courbe ayant une position du maximum différente de la première que je prends comme référence. Est-il possible de décaler un signal comme ca ? Existe t-il une fonction permettant de faire ce que je souhaite ? Merci pour vos réponses et bonne journée.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    bonjour,

    Tu peux faire un décalage par toi même de tes différents signaux en récupérant le max de chacune de tes courbes.

    voici un petit bout de code pour faire ca :

    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
     
    x=[1 1 1 3 1 1];
    y=[1 1 1 1 3 1];
     
    [xx,ref]=max(x);
    [yy,yind]=max(y);
     
    yl=numel(y);
     
    translate=ref-yind;
     
    if translate>0
        for i=1:translate
            yfinal(i)=NaN;
        end
        yfinal(i+1:i+yl)=y;
     
    elseif translate<0
        yfinal=y(abs(translate)+1:end);
     
    elseif translate==0
        yfinal=y;
    end
     
    h=plot(x)
    hold on
    h2=plot(yfinal,'r')
    Après, si tu as plusieurs maximum, tu peux récupérer le premier en utilisant l'argument "first".

    Une autre méthode consisterait à travailler directement sur le graphique en utilisant les "get" et "set". Ca dépend ce que tu cherches à faire par la suite...

    edit: modification du code

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    Tu peux avoir la valeur maximum avec la fonction MAX mais également l'indice de cette valeur dans ton vecteur... après tu calcules l'offset de chaque courbe et l'applique.
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Je vous remercie j'ai pu reprendre le principe pour me faire mon petit algo a moi merci bonne fin de journée

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

Discussions similaires

  1. [Artichow] Alignement courbe à droite
    Par cjordi dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 08/02/2011, 17h11
  2. [Lazarus] Alignement de courbes dans un tachart
    Par pacific14 dans le forum Lazarus
    Réponses: 1
    Dernier message: 06/08/2010, 17h54
  3. Alignement courbé d'un pargraphe
    Par richard09 dans le forum Powerpoint
    Réponses: 0
    Dernier message: 18/01/2008, 13h42
  4. [VB6] [MSChart] Courbe incorrecte
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 08/10/2002, 21h53
  5. [VB6] [Printer] Chiffres alignés à droite
    Par Laye dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 03/10/2002, 18h36

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