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 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| % Choix du fichier de débit à utiliser :
FichierTexte = 'FichierTexte.txt'
%Choix du nom du fichier de sortie :
FichierSortie='FichierSortie.txt'
%% ETAPE 1 : Importation des données %%
% Ouverture du fichier texte dans lequel il y a les valeurs.
fid1=fopen(FichierTexte,'r');
% Lecture d'un texte formaté.
m=textscan(fid1,'%f %f %f %f','delimiter','/\t');
% Fermeture du fichier après lecture.
fclose(fid1);
JJ=m{1}; % La colonne 1 de ma matrice m contient les jours "JJ".
MM=m{2}; % La colonne 2 de ma matrice m contient les mois "MM".
YY=m{3}; % La colonne 3 de ma matrice m contient les années "YY".
Deb=m{4}; % La colonne 4 de ma matrice m contient les valeurs "Deb".
%% ETAPE 2 : Min, Moy et Max de Deb + Graphe %%
% dd = [JJ,MM]
[dd,f,i]= unique([JJ,MM], 'rows'); % classifie les données par valeurs uniques de jour/mois
[years,~,ic]= unique(YY);
hold all
sums_by_JM= accumarray(i,Deb);
max_by_JM= accumarray(i,Deb,[],@max);
min_by_JM= accumarray(i,Deb,[],@min);
mean_by_JM= accumarray(i,Deb,[],@mean);
% sums_by_JM(k) est la somme des valeurs de Deb lorsque [JJ,MM]= dd{k};
% max_by_JM(k) est le max des valeurs de Deb lorsque [JJ,MM]= dd{k};
dts= datenum([zeros(size(dd,1),1),dd(:,1),dd(:,2)]);
hold on
plot(dts, max_by_JM, 'g-');
plot(dts, min_by_JM, 'b-');
plot(dts, mean_by_JM, 'k-');
accumarray(ic(:), (1:numel(YY)).', [numel(years) 1], ...
@(idx) plot(datenum([zeros(size(idx)),MM(idx),JJ(idx)]),Deb(idx),'o'));
datetick('x', 'dd/mm')
% %legend(num2str(years))
% Création du fichier de sortie.
fid2=fopen(FichierSortie,'w');
% Ecriture dans le fichier de sortie.
fprintf(fid2, '%f', accumarray(i,Deb,[],@max));
fclose(fid2); |
Partager