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
Partager