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
| X = textscan(fid, '%s %f','delimiter', '\t');
fclose(fid);
%Récupération des dates
vDateAcTrous = X{1};
%Récupération des hauteurs
vHauteurs = X{2};
%Passage des dates en vecteurs
[vA, vM, vD, vH, vMN] = datevec(char(vDateAcTrous),'dd/mm/yyyy HH:MM');
%Passage des dates en julian
vMesDatesSansSecondes = datenum(vA, vM, vD, vH, vMN, 0);
%Tableau des dates avec sauts et la valeur des hauteurs
DateBrut = [vMesDatesSansSecondes, vHauteurs];
vDateNum = [min(vMesDatesSansSecondes)];
%Taille de la matrice finale ie (Nbs de jours (max-min) * 48 (nb de fois de 0 et 30min dans 24h)
SizeMat= (max(vMesDatesSansSecondes)-min(vMesDatesSansSecondes))*48+1;
for k = 1:SizeMat
%Remplissage du tableau "date" sans trous
Date = addtodate(vDateNum(k,1), 30 , 'minute');
vDateNum = [vDateNum ; Date];
end
vDate = cellstr(datestr(vDateNum));
[vA2, vM2, vD2, vH2, vMN2] = datevec(char(vDate));
%Création de la colonne NaN
vHauteursNaN = nan(size(vDate));
%Tableau des dates sans sauts et Nan
DateNaN = [vDateNum, vHauteursNaN];
%Comparaison entre les dates connues et le tableau crée
% DateFin=[]
% for i = 1:length(DateBrut)
% for k = 1: length(DateNaN)
% if DateBrut(i,1) == DateNaN(k,1)
% DateFin= [DateFin; datestr(DateBrut(i,1)),DateBrut(i,2)]
% else
% DateFin=[DateFin; datestr(DateNaN(k,1)),DateNaN(k,2)]
% end
% end
% end
idxDatesConnues = ismember(DateNaN,DateBrut)
vHauteurs(idxDatesConnues ) = vHauteurs; |