Matlab

Ejecutar una función con retraso en Matlab

Generalmente al escribir un comando en Matlab queremos que este se ejecute al momento, y es lo que sucede. Pero, en algunas ocasiones puede ser interesante que la función no se ejecute al momento, sino que un tiempo después. Por ejemplo, para actualizar una figura con nuevos datos. Aunque el lenguaje no cuenta con una función para realizar esta trate específicamente, es posible ejecutar una función con retraso en Matlab usando un timer.

El timer de Matlab

La función timer de Matlab permite programar tareas para que se ejecuten periódicamente cada cierto tiempo. Tarea que generalmente se indica mediante una función handle. La función puede recibir diferentes valores opcionales que se deben pasar en pares nombre de la propiedad (una cadena de texto) y valor. Las propiedades más interesantes que admite la función son:

  • TimerFcn: la función que se desea ejecutar periódicamente.
  • Period: el tiempo en segundos entre cada una de las llamadas a la función.
  • StartDelay: retraso en segundos para que la función se ejecute por primera vez.
  • TasksToExecute: las veces que la función se va a ejecutar, debe ser un valor mayor de cero.
  • ExecutionMode: el modo en el que se mide el tiempo entre ejecuciones. Los posibles valores de este parámetro son:
    • singleShot: la tarea se ejecuta una única vez.
    • fixedRate: el tiempo entre las ejecuciones empieza contar cuando la ejecución anterior ha terminado.
    • fixedDelay: el tiempo entre ejecuciones empieza contar después del retraso.
    • fixedSpacing: la tarea se ejecuta en espacios fijos de tiempo.

Ejecutar una función con retraso en Matlab

En base a lo visto, para ejecutar una función con retraso en Matlab solamente se tendría que ejecutar el siguiente código.

T = timer('StartDelay', 5, 'TimerFcn', @(~, ~) msgbox('Mensaje con retraso'));
start(T);

En el que se define un retraso de cinco segundos (StartDelay) para que se muestre por pantalla un mensaje con retraso. Con la función timer se crea un objeto. Para inicializar el contador se le debe pasar una señal al objeto usando para ello la función start(). Una vez hecho esto la función se ejecutará una vez pasados 5 segundos.

Ejecutar una función con retraso varias veces Matlab

Para que la función se ejecute varias es necesario agregar algunas opciones. La primera es indicar con TasksToExecute el número de ejecuciones, valor que por defeco es uno. Otra opción que se debe cambiar el modo de ejecución, por defecto es singleShot por lo que se debe seleccionar uno válido como fixedDelay. Además, también se debe iniciar el pedido entre ejecuciones. Por ejemplo, el siguiente código permite mostrar el mensaje dos veces, uno tras cinco segundos y el segundo dos segundos después (siente segundos después de iniciar el proceso).

T = timer('StartDelay', 5, 'TimerFcn', @(~, ~) msgbox('Mensaje con retraso'), …
          'TasksToExecute', 2, 'ExecutionMode', 'fixedDelay', 'Period', 2);
start(T);        

Conclusiones

En esta entrada se ha visto un método para ejecutar una función con retraso en Matlab, algo que nos puede ser útil cuando se desarrollan aplicaciones que interaccionan con usuarios.

Imagen de Rico Imbiky en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Por qué migrar tus proyectos TypeScript a ES Modules en 2026

Durante años, CommonJS (require/module.exports) ha sido la forma por defecto de organizar módulos en Node.js,…

8 horas ago

Método del codo: interpretación correcta y limitaciones

Cuando usas k-means tienes que decidir algo incómodo de entrada: cuántos grupos, , vas a…

2 días ago

Errores comunes al interpretar resultados estadísticos

La estadística no suele fallar en los cálculos: falla en la interpretación. El test está…

1 semana ago

Dashboard CLV: cuatro modelos, un mismo dataset, conclusiones muy distintas

Los artículos anteriores de esta serie cubrieron cuatro formas de mirar el valor del cliente:…

1 semana ago

Curiosidad: Por qué la criptografía habla siempre de Alice y Bob

Quien se acerca a la criptografía descubre enseguida a dos personajes que aparecen en casi…

2 semanas ago

Desbalanceo de Clases en Credit Scoring: Por Qué Usamos Ponderación en lugar de Undersampling

En credit scoring el desbalanceo de clases es la norma, no la excepción. En una…

2 semanas ago

This website uses cookies.