Salut à tous,
Par cette journée pluvieuse, je me suis mis à coder un peu et je cherche à faire un peu d'optimisation.
Si vous avez aussi envie de vous prendre au jeu... :)
Imaginons qu'on ait une matrice du type:
La 1e ligne serait un index, la seconde notre abscisse et les suivantes des ordonnées.Code:
1
2
3
4
5
6 matrice_initiale=[1,2,3,1,2,3,1,2,1,1,2;... 1,1,1,2,2,2,3,3,4,5,5;... 1,2,5,8,9,7,8,9,3,1,4;... 2,6,6,7,8,9,8,5,1,5,3;... 3,6,1,3,3,7,8,9,5,2,4;... 4,5,6,7,8,2,3,4,5,6,4]
J'ai cherché à tracer sur 3 figures (liés à l'index) des subplot des 4 ordonnées et ça me donne:
Je suis assez fier de moi :D mais je cherche à optimiser ce code que je trouve long et parfois fastidieux,Code:
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
35
36
37
38
39
40
41 function tracepasoptimisee(matrice_initiale) % matrice_initiale: % Index % X % Y1 % Y2 % Y3 % Y4 %Tri par colonne selon la ligne 1 [pasbesoin,idx] = sort(matrice_initiale(1,:)) matrice_triee=matrice_initiale(:,idx) % ans = % % 1 1 1 1 1 2 2 2 2 3 3 % 1 2 3 4 5 1 2 3 5 1 2 % 1 8 8 3 1 2 9 9 4 5 7 % 2 7 8 1 5 6 8 5 3 6 9 % 3 3 8 5 2 6 3 9 4 1 7 % 4 7 3 5 6 5 8 4 4 6 2 %Recherche en ligne 2 des termes égaux à 1 debut=find(matrice_triee(2,:)==1)%!sous réserve que le nouveau plot commence toujours à index=1 %ans = % % 1 6 10 nbplot=matrice_triee(1,end)% 3 ici for i=1:nbplot%boucle plot figure if i~=nbplot temp=matrice_triee(:,debut(i):debut(i+1)-1)%sous-matrice else temp=matrice_triee(:,debut(nbplot):size(matrice_triee,2))%dernière sous-matrice end for j=1:4%boucle des 4 graphes subplot(4,1,j); plot(temp(2,:),temp(j+2,:)) title(strcat('elle est jolie ma figure n° ',num2str(j),' :)')); end%j end%i
donc si vous avez des astuces... ;)
J'ai notamment un vilain lag sur le tracé de la dernière figure... (à cause du if else?)
Et y'a-t-il un moyen d'avoir un titre général en haut de figure?
Merci d'avance :)