Matlab® es un lenguaje muy utilizado en ingeniería, ya que permite hacer de forma más o menos sencilla cálculos matemáticos muy complejos, y a veces necesitamos procesar gran cantidad de datos y llega a ser desesperante ver cómo tarda sin tener tan siquiera una ligera idea de cuánto queda.
El principio del código que voy a postear se basa en dos funciones: tic y toc. La primera de ellas marca el inicio de la cuenta de tiempo, y la segunda el final, indicándonos los segundos transcurridos entre tic y toc. Podemos por ejemplo hacer esto:
Y nos devolverá los segundos en total que ha tardado.
Pero vamos a ir algo más allá. Imaginemos que tenemos una tarea iterativa de N iteraciones, queremos que cada N/20 iteraciones nos diga más o menos lo que queda (en cada iteración sería mucho, porque estaría todo el rato diciendo el tiempo, y además gastando tiempo en ello; por lo que tendríamos que esperar mucho más de lo necesario).
Éste es el código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | N=2000; aviso=100; tic % Inicia el contador de tiempo for n=0:N % Calculamos el progreso total y los tiempos estimado y restante if (mod(n, aviso)==0) progreso=n/N; % Progreso (Entre 0 y 1) transcurrido=toc; % Tiempo transcurrido estimado=transcurrido/progreso; % Estimamos el tiempo total queda = estimado-transcurrido; % Tiempo restante % Lo mostramos todo en pantalla disp(sprintf('Progreso %2.2f%%. Tiempo Transcurrido: %ds. Tiempo estimado: %ds. Tiempo restante %ds.', progreso*100, round(transcurrido), round(estimado), round(queda))); end % Esto se supone que es una tarea que tarda mucho tiempo pause(0.01); end disp('Completado!'); |






Pingback: Bitacoras.com /
GENIAL! muchísimas gracias, justo lo que necesitaba
crack
Gracias a ti miguek, por pasarte por aquí 🙂
This is a great inspiring article. I am pretty much pleased with your good work.You put really very helpful information. Your Place or Mine Ashton Kutcher Jacket
Quality posts is the crucial to invite the visitors to visit the web page, that’s what this web page is providing.
NBA Betting
Retro bowl is a throwback-style football game in which the objective is to coach your team to victory and earn a prize at the end of each season.