Bonjour,
Voici mon problème:
J'ai une matrice initiale (C) de la forme n lignes, 2 colonnes:
Je veux une matrice finale de la forme m lignes (autant que de valeurs discrètes dans la première colonne de la matrice initiale), 3 colonnes:1 0.1 1 0.09 1 0.2 2 0.09 2 0.08 3 0.1 3 0.08 4 0.09 4 0.09
Mean Std 1 0.13 0.0608276 2 0.085 0.00707107 3 0.09 0.0141421 4 0.09 0
En faisant des boucles, j'arrive à créer ma matrice mais ça prend un temps fou parce que ma matrice initiale est énorme (>10e6 valeurs)!
Il doit bien y avoir une méthode moins bourrine et plus subtile pour faire ça en Matlab, mais je ne vois pas...
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 Result=zeros(length(A),2); Result(:,1)=A(:); Result(:,2)=B(:); C=sortrows(Result,1); %Matrice initiale dans mon post i=0;j=0;k=0;l=0; for(j=1:max(B(:,1))) for(i=1:length(B)) if(B(i,1)==j) k=k+B(i,2); l=l+1; Std_k(l)=B(i,2); end end%for Result2(j,1)=j; %Result2(j,1) contient les différentes valeurs discretes Result2(j,2)=k/l; %Result2(j,2) contient la valeur moyenne Result2(isnan(Result2))=0; %Result2(j,3) contient l'écart-type Result2(j,3)=std(Std_k); k=0; l=0; Std_k=0; end%for
Merci d'avance!
Sébastien
Partager