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
|
%% ********************************************************************* %%
%% ETAPE 3 : Calcul des cases %%
%% ********************************************************************* %%
% Trier les lignes en fonction de X, pour que les valeurs soient rangées
% dans l'ordre croissant.
mbis = horzcat (X, Y, Z) % Je concatènne mes colonne X, Y et Z en une matrice
Tri = sortrows (mbis) % Je tri ma matrice en fonction de ma première colonne
% J'aurais pu écrire : Tri = sortrows (mbis, 1)
Xbis=Tri(:,1); % La colonne 1 de ma matrice m contient les valeurs X.
Ybis=Tri(:,2); % La colonne 2 de ma matrice m contient les valeurs Y.
Zbis=Tri(:,3); % La colonne 3 de ma matrice m contient les valeurs Z.
NCase=10 % Je veux séparer X en dix colonnes (NCase = nombre de colonne ... logique !)
Dlig=length(X) % Il y a length(X) lignes dans ma matrice. Dlig est le numéro de ma dernière ligne.
Ztot=sum(X)/10 % Comme je veux 10 classes avec une somme des Z identique, je calcul la somme totale de mes Z
Deb = 1 % 1ère ligne à prendre en compte
SumZ(1)=Z(1) % J'initialise ma variable.
for n = 1:NCase % Pour chacune des 10 colonnes ...
for lig = 2:Dlig % Pour chacune des lignes, à partir de la deuxième ...
SumZ(lig)= SumZ(lig-1)+Z(lig) % La somme des Z = La somme déjà calculée + Z(lig)
if SumZ(lig) >= n*Ztot % Si ma somme dépasse n*Ztot (la valeur de Z théorique de chacune des 10 cases que je veux dessiner)
elseif SumZ(lig)-(n*Ztot) > (n*Ztot)- SumZ(lig-1) % Et si l'écart entre cette valeur théorique et Sum.Z(lig) est supérieur à l'écart entre la valeur théorique et Sum.Z(lig-1), alors
Case(n) = [X(Deb) : Z(lig-1)]
Deb=lig % 1ère ligne à prendre en compte pour la prochaine case.
else % Sinon, c'est-à-dire, si l'écart entre la valeur théorique et Sum.Z(lig) est inférieure à l'écart entre la valeur théorique et Sum.Z(lig-1), alors
Case(n) = [X(Deb) : Y(lig)]
Deb=lig % 1ère ligne à prendre en compte pour la prochaine case.
end
end
end |
Partager