Matlab - Series de tiempo

 
Vista:

Series de tiempo

Publicado por Miguel Angel (1 intervención) el 25/05/2016 18:03:05
Que tal, busco ayuda para realizar un programa para una serie de tiempo de un año, donde tengo doce archivos referentes a cada mes, cargo cada mes mediante un ciclo, y del mismo modo, me salto los archivos fallidos.

Entonces, necesito obtener vectores de 12 elementos para ese año, donde cada elemento es un promedio mensual, pero como elimino dos meses, solo tengo 10/12 datos. la otra pregunta es que realizo promedios diarios, pero no todos los meses tienen 30,31 o 28 dias, de manera errónea realizo lo siguiente:

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
MDirvhp=[];
MRapvhp=[];
MTemphp=[];
MPreshp=[];
MDirvdp=[];
MRapvdp=[];
MPresdp=[];
MTempdp=[];
MTemppm=[];
MDirvpm=[];
MRapvpm=[];
MPrespm=[];
MHrhp=[];
MHrdp=[];
MHrpm=[];
MRhp=[];
MRdp=[];
MRpm=[];
PMT=[];
PMP=[];
PMD=[];
PMWS=[];
PMR=[];
MMaxT=[];MMinT=[];
MMaxP=[];MMinP=[];
MMaxD=[];MMinD=[];
MMaxWS=[];MMinWS=[];
MMaxR=[];MMinR=[];
MTmin=[]; MTmax=[];
MDirmin=[]; MDirmax=[];
MW_Smin=[]; MW_Smax=[];
MPmin=[]; MPmax=[];
MHrmin=[]; MHrmax=[];
MRmin=[]; MTmax=[];
 
for i = 201301:201312 % archivos de cada mes
     if i==201310|i==201311%archivos fallidos
         continue
     end
 
    archivo = [  num2str( i ) ,'pa' '.xls' ]; %lectura de datos
   [num,text]=xlsread(archivo);
    x=1:1:length(num(2:end,1));
    Dirv=num(2:end,2);cd=2;
    Rapv=num(2:end,4);cr=4;
    Temp=num(2:end,6);ct=6;
    Pres=num(2:end,8);cp=8;
    Hr=num(2:end,7);
    R=num(2:end,9);
%Promedios cada hora
i_nv=1:6:length(Dirv);
    a=1:6:length(Dirv);
    b=a(2)-1:6:length(Dirv);
 
for k=1:length(i_nv);
    Dirvh=Dirv(a(k):b(k),1);
    Dirvhp(k)=nanmean(Dirvh);
    Rapvh=Rapv(a(k):b(k),1);
    Rapvhp(k)=nanmean(Rapvh);
    Temph=Temp(a(k):b(k),1);
    Temphp(k)=nanmean(Temph);
    Presh=Pres(a(k):b(k),1);
    Preshp(k)=nanmean(Presh);
    Dirvhp=[Dirvhp];
 
    Hrh=Hr(a(k):b(k),1);
    Hrhp(k)=nanmean(Hrh);
    Rh=R(a(k):b(k),1);
    Rhp(k)=nanmean(Rh);
    Rh=R(a(k):b(k),1);
    Rhp(k)=nanmean(Rh);
end
MDirvhp=[MDirvhp Dirvhp];
MRapvhp=[MRapvhp Rapvhp];
MTemphp=[MTemphp Temphp];
MPreshp=[MPreshp Preshp];
MHrhp=[MHrhp Hrhp];
MRhp=[MRhp Rhp];
 
 
%=============================================Promedios diarios y mensuales
 
i_nvdd=1:24:length(Dirvhp);
Dirvd=zeros(length(i_nv),1);
ad=1:24:length(Dirvhp);
bd=ad(2)-1:24:length(Dirvhp);
meses=[];
 
for ii=1:length(i_nvdd);
    Dirvd=Dirvhp(1,ad(ii):bd(ii));
    Dirvdp(ii)=nanmean(Dirvd);
 
    Rapvd=Rapvhp(1,ad(ii):bd(ii));
    Rapvdp(ii)=nanmean(Rapvd);
 
    Tempd=Temphp(1,ad(ii):bd(ii));
    Tempdp(ii)=nanmean(Tempd);
 
    Hrd=Hrhp(1,ad(ii):bd(ii));
    Hrdp(ii)=nanmean(Hrd);
 
    Rd=Rhp(1,ad(ii):bd(ii));
    Rdp(ii)=nanmean(Rd);
 
 
 
    Presd=Preshp(1,ad(ii):bd(ii));
    Presdp(ii)=nanmean(Presd);
 
    Temppm=nanmean(Tempdp);
 
    Dirvpm=nanmean(Dirvdp);
 
    Rapvpm=nanmean(Rapvdp);
 
    Prespm=nanmean(Presdp);
 
    Hrpm=nanmean(Hrdp);
 
    Rpm=nanmean(Rdp);
 
    Tmin=min(Tempdp); Tmax=max(Tempdp);
    Dirmin=min(Dirvdp); Dirmax=max(Dirvdp);
    W_Smin=min(Rapvdp); W_Smax=max(Rapvdp);
    Pmin=min(Presdp); Pmax=max(Presdp);
    Hrmin=min(Hrdp); Hrmax=max(Hrdp);
    Rmin=min(Rdp); Rmax=max(Rdp);
    end


Ojalá puedan orientarme
saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder