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 :

Tracer la courbe moyenne de plusieurs courbes


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Tracer la courbe moyenne de plusieurs courbes
    Bonjour à tous,

    Je suis parvenue à faire un graphique représentant une trajectoire de centre de gravité pendant un mouvement sur différents essais pour 2 groupes de sujets (des experts / des débutants). Je souhaiterais tracer sur le même graphique la courbe de la trajectoire moyenne pour chacun des deux groupes, sachant que toutes les courbes dont je souhaite faire la moyenne n'ont pas le même nombre de points (car les mouvements n'ont pas tous exactement la même durée).

    J'ai tenté le code ci-dessous, où j'utilise une boucle pour chaque sujet, où je viens ajouter à chaque fois la position en Y et où j'ai essayé, une fois sortie de la boucle, de diviser par le nombre de sujets de chaque groupe.

    Le script ne bugge pas, mais il ne trace pas la moyenne...

    Si quelqu'un pouvait m'indiquer s'il voit une erreur flagrante dans mon code ou s'il existe une façon plus simple de faire, je lui en serait très reconnaissante !

    Par avance un grand merci ! (je ne mets que le bout de code concerné, nb et POS sont bien entendu définis au préalable)
    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
    28
    29
    30
    31
    32
    33
    34
    for subj = 1:nb
        figure(f1);
        title('Trajectoire du centre de gravité et des mains dans le plan Sagittal condition normale','FontSize',16);
        xlabel('Position sur Y [m]','FontSize',14);
        ylabel('Position sur Z [m]','FontSize',14);
        plot(POS(:,3),POS(:,4),cur,'color',COL(nCOL,:)); axis equal
     
        drawnow
     
        [lg cl]= size( POS(:,3));
        tt= 0:(1/250):(lg-1)/250;
        ttf= 0:(lg/500)/250:(lg-1)/250;
        DtP(subj,:,1) = spline(tt,POS(:,3),ttf);
        DtP(subj,:,2) = spline(tt,POS(:,4),ttf);
     
        if strcmp(eval(nickname),'E')
            MDtPE=MDtPE+DtP(subj,:,:);               % construction de la moyenne
        else
            MDtPD=MDtPD+DtP(subj,:,:);               % construction de la moyenne
        end
    end
     
    MDtPE=MDtPE/7;
    MDtPD=MDtPD/8;
     
    if strcmp(eval(nickname),'E'),figure(f1);
        legend ('CG groupe A','CG groupe B');
        plot(MDtPE(:,1),MDtPE(:,2),'-b','LineWidth',3,'color','blue'); axis equal
        drawnow;
     
    else
        plot(MDtPD(:,1),MDtPD(:,2),'-b','LineWidth',3,'color','red'); axis equal
        drawnow;
    end

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 313
    Points : 52 939
    Points
    52 939
    Par défaut
    Citation Envoyé par Timoya Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        if strcmp(eval(nickname),'E')
    Je n'aime pas cette condition... que contient exactement la variable nickname ?

    Sinon, tu devrais utiliser INTERP1 pour interpoler les courbes sur la même durée de trajet.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup, je vais essayer avec INTERP1 !

    Nickname correspond aux initiales de chaque sujet, contenues dans le nom de mes fichiers Excel. Je définis une correspondance entre les nicknames et le groupe d'appartenance (E = experts , D = débutants)

    Merci d'avoir mis mon message au bon endroit, et pour les balises !

Discussions similaires

  1. MATPLOTLIB - Tracer plusieurs courbes
    Par jouclar dans le forum Général Python
    Réponses: 3
    Dernier message: 12/10/2012, 14h31
  2. Tracer plusieurs courbes sur le même graphe
    Par T-MAT dans le forum MATLAB
    Réponses: 6
    Dernier message: 31/12/2011, 18h32
  3. courbe moyenne à partir de courbes en C
    Par loup_precaire dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 31/08/2009, 15h51
  4. courbes moyennes en fonction de plusieurs points sur un graphique
    Par jeanGuignol dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 26/09/2008, 08h51

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