Bonjour,

Je dois tout d'abord remercier Dut pour son aide la dernière foi.. J'ai cependant un autre post à soumettre..

Ceci est une liste de date ( colonne 6 et 8 ) et de valeurs en MW ( 7 et 9 )..
Ce sont des modifications demandées par la national grid ( je suis en angleterre actuellement ).

Je dois splitter à nouveau ces chiffres chaque minutes le long d'une journée et interpoler entre ces deux chiffres..


BOAL,T_DRAXX-1,81442,20080312055000,N,20080312055200,600.000,20080312055700,550.000
BOAL,T_DRAXX-1,81442,20080312055000,N,20080312055700,550.000,20080312060700,550.000
BOAL,T_DRAXX-1,81442,20080312055000,N,20080312060700,550.000,20080312061700,645.000
BOAL,T_DRAXX-1,81443,20080312064400,N,20080312064600,645.000,20080312065600,550.000
BOAL,T_DRAXX-1,81443,20080312064400,N,20080312065600,550.000,20080312072600,550.000
BOAL,T_DRAXX-1,81443,20080312064400,N,20080312072600,550.000,20080312073600,645.000
BOAL,T_DRAXX-1,81444,20080312071700,N,20080312071900,550.000,20080312074900,550.000
BOAL,T_DRAXX-1,81444,20080312071700,N,20080312074900,550.000,20080312075900,645.000
BOAL,T_DRAXX-1,81445,20080312075100,N,20080312075300,588.000,20080312082300,588.000
BOAL,T_DRAXX-1,81445,20080312075100,N,20080312082300,588.000,20080312082900,645.000
BOAL,T_DRAXX-1,81446,20080312082300,N,20080312082500,607.000,20080312084000,607.000
BOAL,T_DRAXX-1,81446,20080312082300,N,20080312084000,607.000,20080312084400,645.000
BOAL,T_DRAXX-1,81447,20080312090000,N,20080312090200,645.000,20080312090700,600.000
BOAL,T_DRAXX-1,81447,20080312090000,N,20080312090700,600.000,20080312091700,600.000
BOAL,T_DRAXX-1,81447,20080312090000,N,20080312091700,600.000,20080312092200,645.000
BOAL,T_DRAXX-1,81448,20080312091400,N,20080312091600,600.000,20080312092600,600.000
BOAL,T_DRAXX-1,81448,20080312091400,N,20080312092600,600.000,20080312093100,645.000
BOAL,T_DRAXX-1,81449,20080312103200,N,20080312103400,645.000,20080312103900,600.000
BOAL,T_DRAXX-1,81449,20080312103200,N,20080312103900,600.000,20080312104900,600.000
BOAL,T_DRAXX-1,81449,20080312103200,N,20080312104900,600.000,20080312105400,645.000
BOAL,T_DRAXX-1,81450,20080312181700,N,20080312181900,614.000,20080312182100,603.000
BOAL,T_DRAXX-1,81450,20080312181700,N,20080312182100,603.000,20080312184100,603.000
BOAL,T_DRAXX-1,81450,20080312181700,N,20080312184100,603.000,20080312184600,645.000
BOAL,T_DRAXX-1,81451,20080312182900,N,20080312183100,603.000,20080312183700,550.000
BOAL,T_DRAXX-1,81451,20080312182900,N,20080312183700,550.000,20080312185200,550.000
BOAL,T_DRAXX-1,81451,20080312182900,N,20080312185200,550.000,20080312190200,645.000
BOAL,T_DRAXX-1,81452,20080312184300,N,20080312184500,550.000,20080312191500,550.000
BOAL,T_DRAXX-1,81452,20080312184300,N,20080312191500,550.000,20080312192500,645.000
BOAL,T_DRAXX-1,81453,20080312192200,N,20080312192400,635.000,20080312193300,550.000
BOAL,T_DRAXX-1,81453,20080312192200,N,20080312193300,550.000,20080312200300,550.000
BOAL,T_DRAXX-1,81453,20080312192200,N,20080312200300,550.000,20080312201300,645.000
BOAL,T_DRAXX-1,81454,20080312220900,N,20080312221100,645.000,20080312222100,550.000
BOAL,T_DRAXX-1,81454,20080312220900,N,20080312222100,550.000,20080312223600,550.000
BOAL,T_DRAXX-1,81454,20080312220900,N,20080312223600,550.000,20080312224600,645.000
BOAL,T_DRAXX-1,81455,20080312224000,N,20080312224200,607.000,20080312224300,610.000
BOAL,T_DRAXX-1,81455,20080312224000,N,20080312224300,610.000,20080312230300,610.000
BOAL,T_DRAXX-1,81456,20080312224500,N,20080312224700,610.000,20080312225100,570.000
BOAL,T_DRAXX-1,81456,20080312224500,N,20080312225100,570.000,20080312225600,570.000
En reprenant ton code et en adaptant un peu à la lecture, j'obtiens des resulats pas trop mauvais mais il ne tient pas compte quand par exemple de 9:31 à 10:34 les valeurs restent constantes..en vert...

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
 
[t1,val1,t2,val2] = textread('boa.txt','%*s%*s%*d%*s%*s%s%f%s%f','delimiter',',');
for n=1:numel(t1)
 
x(1) = str2double(t1{n}(11:12));
x(2) = str2double(t2{n}(11:12));
 
if x(2)==0
x(2)=60;
end
 
if x(2)-x(1)>1
vali = interp1([x(1) x(2)],[val1(n) val2(n)],x(1):x(2)-1,'linear');
else vali = [val1(n);val2(n)];
end
 
x = x(1):x(2)-1;
fmt = sprintf('%s%%02d00 %%.2f\\n',t1{n}(1:10));
 
fprintf(fmt,[x ; vali])
% clear x
end
Si vous savez me donner un tit coup de main...

Resultats obtenus du style :

20080312082900 607.00
20080312083000 607.00
20080312083100 607.00
20080312083200 607.00
20080312083300 607.00
20080312083400 607.00
20080312083500 607.00
20080312083600 607.00
20080312083700 607.00
20080312083800 607.00
20080312083900 607.00
20080312084000 607.00
20080312084100 616.50
20080312084200 626.00
20080312084300 635.50
20080312090200 645.00
20080312090300 636.00
20080312090400 627.00
20080312090500 618.00
20080312090600 609.00
20080312090700 600.00