
Tiempo de ejecución
Publicado por Adrián (10 intervenciones) el 22/02/2017 13:40:52
Hola buenas, estoy usando una función la cual recoge datos de un archivo .txt y me los muestra como variables, pero lo he modificado para que me lea todos los archivos .txt que hay en una determinada carpeta. Hasta ahí todo va bien, pero necesito que os datos se vayan metiendo en unas variables sucesivamente con cada iteración si borrar los anteriores datos, es decir, si en una iteración recojo 10 valores de una variable X, en la segunda iteración esa variable X habrá aumentado a 20 valores y así sucesivamente hasta leer todos los archivos .txt y con cada una de las distintas variables, esto lo consigo hacer pero el tiempo de ejecución es demasiado elevado y tarda mucho al haber tantas variables dentro de los bucles. NEcesito ayuda para saber si se puede hacer de otra manera que el tiempo se reduzca considerablemente sin utilizar bucles o de cualquier otra forma. Mi código es el siguiente:
Muchas gracias, un saludo.
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
i = 1;
fname = leer_archivos('C:\Users\Adrián\Desktop\Adri\UNI\TFG\Desarrollo\Nuevo11-16\estación meteorológica\geonica','*.txt');
x = length(fname);
while i<=x
name=strjoin(fname(i));
[Fecha,yyyymmdd,hhmm,V_Viento,D_Viento,Temp_Air,Rad_Dir,Ele_Sol,Ori_Sol,Top,Mid,Bot,Cal_Top,Cal_Mid,Cal_Bot,Pres_Aire] = importfile(name);
if i == 1 %al ser i = 1, en esta primera iteracion se crea el vector de cada variable junto con todos sus datos
Fecha_Total = Fecha;
yyyymmdd_Total = yyyymmdd;
hhmm_Total = hhmm;
V_Viento_Total = V_Viento;
D_Viento_Total = D_Viento;
Temp_Air_Total = Temp_Air;
Rad_Dir_Total = Rad_Dir;
Ele_Sol_Total = Ele_Sol;
Ori_Sol_Total = Ori_Sol;
Top_Total = Top;
Mid_Total = Mid;
Bot_Total = Bot;
Cal_Top_Total = Cal_Top;
Cal_Mid_Total = Cal_Mid;
Cal_Bot_Total = Cal_Bot;
Pres_Aire_Total = Pres_Aire;
end
k = 2;
while k <= x %siguientes iteraciones hasta llegar al maximo de archivos .txt leidos
if i==k %hacemos la misma condicion que la primera, cogemos los valores
%de las variables pero de la segunda lectura y asi sucesivamente
%en las siguientes lecturas hasta llegar al numero de archivos .txt leidos
j=1;
while j<=length(Fecha) %añadimos en cada lectura el siguiente valor de
%cada variable al vector principal creado en la
%primera iteracion, rellenando asi el vector con todos los datos en orden
Fecha_Total(end+1,1) = Fecha(j);
yyyymmdd_Total(end+1,1) = yyyymmdd(j);
hhmm_Total(end+1,1) = hhmm(j);
V_Viento_Total(end+1,1) = V_Viento(j);
D_Viento_Total(end+1,1) = D_Viento(j);
Temp_Air_Total(end+1,1) = Temp_Air(j);
Rad_Dir_Total(end+1,1) = Rad_Dir(j);
Ele_Sol_Total(end+1,1) = Ele_Sol(j);
Ori_Sol_Total(end+1,1) = Ori_Sol(j);
Top_Total(end+1,1) = Top(j);
Mid_Total(end+1,1) = Mid(j);
Bot_Total(end+1,1) = Bot(j);
Cal_Top_Total(end+1,1) = Cal_Top(j);
Cal_Mid_Total(end+1,1) = Cal_Mid(j);
Cal_Bot_Total(end+1,1) = Cal_Bot(j);
Pres_Aire_Total(end+1,1) = Pres_Aire(j);
j=j+1;
end
end
k=k+1;
end
i= i+1;
end
Muchas gracias, un saludo.
Valora esta pregunta


0