ENTRADAS

5 mar 2017

Interfaces Gráficas en MATLAB 1/2

/
Publicado por
/
Comentarios1
/

En este artículo veremos una introducción a las interfaces gráficas en MATLAB y algunos ejemplos para comenzar con esta herramienta.

Interfaces Gráficas en MATLAB

Interfaz con GUIDE 1

MATLAB comenzó siendo un programa para resolver matrices en 1984, que poco a poco fue sumando funcionalidades hasta llegar a lo que conocemos hoy, un software para todo tipo de ámbitos dentro de la ciencia que facilita una gran cantidad de trabajos si se sabe usar correctamente.

Es cierto que un script de MATLAB tiene determinadas limitaciones con respecto a un programa realizado con otro lenguaje de programación como C++ o Java, tanto de propiedades del mismo lenguaje como de estabilidad, optimización, portabilidad… Sin embargo, es ineludible que la velocidad de desarrollo de un programa, la gran cantidad de funciones incluidas en MATLAB y el mínimo conocimiento de programación necesario para realizar un script son ventajas clave.

La necesidad de una interfaz gráfica (GUI)

Una interfaz gráfica de usuario (Graphical User Interface, GUI) permite utilizar un script de una forma más amigable y clara para el usuario. Dotar a un script de interfaz gráfica es subir un nivel. En muchas ocasiones, la programación de una GUI compensa el tiempo extra que supone desarrollarla. En otras ocasiones esto no es así, por lo que hay que razonarlo previamente. Si el usuario final del script es distinto al programador, es una buena idea plantearse realizar una interfaz. De forma similar, si el usuario tendrá que interactuar muchas veces con el script, podría convenir tomarse el esfuerzo de programar una GUI.

Interfaces Gráficas en MATLAB

Interfaz con GUIDE 2

Si ya se tiene realizado un script y se quiere añadir una interfaz, el procedimiento no es directo y se necesitará algo de tiempo y dedicación para plantearlo de nuevo.

La organización de una interfaz gráfica en MATLAB no es tan clara como en un script, con lo que se hace más compleja la depuración del programa y la lectura del mismo.

Iniciación a las GUIs en MATLAB

En MATLAB, una GUI consta de un archivo con extensión .fig, que es la interfaz en sí y otro archivo .m, que es un script asociado a la interfaz, donde además estará todo el código del programa.

GUIDE es una funcionalidad de MATLAB que permite crear GUIs de manera gráfica. La forma estándar de crear una interfaz gráfica es usar GUIDE, aunque también se puede programar por código. Este último método puede resultar de utilidad en raras ocasiones, además si fuera necesario suplir por código alguna característica de la que carece GUIDE (“hacer alguna trampa”) en la mayoría de casos se puede de una forma u otra. En este artículo usaremos GUIDE.

Creación de una GUI con GUIDE

Para crear una interfaz gráfica vamos a la pestaña Home, New, Graphical User Interface. Marcamos la plantilla Blank, activamos la casilla Save new figure as, indicamos la ruta de guardado y aceptamos.

Interfaces Gráficas en MATLAB

Interfaz con GUIDE 3

Con esto habremos creado los archivos .fig y .m correspondientes a la GUI. Además, veremos en pantalla, GUIDE con una interfaz en blanco.

Interfaces Gráficas en MATLAB

Interfaz con GUIDE 4

Si pulsamos en el botón con forma de triángulo verde en la barra superior de GUIDE ejecutaremos la interfaz en blanco. La ventana que aparece la podemos cerrar y volver a ejecutar desde GUIDE o bien desde MATLAB, ejecutando el script.

Si volvemos a MATLAB, vemos que la interfaz en blanco ya incluye por defecto algo de código en el script. Lo más importante por el momento es la función gui_OpeningFcn.

Interfaces Gráficas en MATLAB

Interfaz con GUIDE 5

Lo que escribamos en esta función se ejecutará justo cuando se abre la interfaz, antes de sea visible. Éste es un buen sitio para inicializar variables o configurar cualquier cosa que se requiera al inicio.

Los objetos de GUIDE

La GUIs están formadas por objetos que en MATLAB se llaman concretamente User Interface Control Object. Éstos son los botones, cuadros de texto, gráficos… En GUIDE aparecen a la izquierda.

Interfaces Gráficas en MATLAB

Interfaz con GUIDE 6

Los objetos tienen unas propiedades determinadas. Para verlo añadimos una etiqueta de texto (el icono que dice TXT) a cualquier sitio de la interfaz. A continuación, hacemos doble clic sobre la etiqueta y se abrirá una ventana con sus propiedades.

Interfaces Gráficas en MATLAB

Interfaz con GUIDE 7

Las propiedades permiten configurar los objetos de la manera que queramos. La propiedad más importante en este caso es String, que indica el texto que se muestra en la etiqueta. La propiedad Tag indica el nombre del objeto, que lo diferencia del resto. Otras propiedades pueden variar la visibilidad, el color, la fuente de la etiqueta…. Las propiedades que se muestran en esta ventana son las que el programa tiene por defecto al iniciar, así si cambiamos la String a “Ejemplo”, la etiqueta mostrará el texto “Ejemplo” al ejecutar el programa.

Las propiedades pueden ser leídas o modificadas desde el script, de manera que la interfaz se comporte de una manera u otra. Esto se hace con dos líneas de código elementales.

Para modificar una propiedad por código se utiliza:

set(handles.TAG,’PROPIEDAD’,’NUEVO VALOR’)

Por ejemplo, para cambiar el texto de la etiqueta de “Static Text” a “Ejemplo” en un determinado lugar del script, habría que ejecutar:

set(handles.text3,‘String’,‘Ejemplo’)

Para leer una propiedad por código se utiliza:

get(handles.TAG,’PROPIEDAD’)

Por ejemplo, para almacenar en una variable el contenido de la etiqueta:

variable1 = get(handles.text3,‘String’)

De esta forma iremos interactuando con los elementos de la interfaz y a su vez con el script.

En el próximo artículo veremos algunos objetos más y cómo hacer funcionar una interfaz gráfica para que realice tareas útiles. Además, algunos trucos importantes.

AUTOR: PEDRO F. FERNÁNDEZ

Ver todos los artículos del autor para el blog de FdeT

Si quieres participar en el blog como colaborador en alguna de las secciones, envíanos un mail a info@fdet.es 

Grupo FdeT

Compartir:
Facebooktwittergoogle_pluslinkedin

1 Response

  1. Pingback : FdeT blog Interfaces Gráficas en MATLAB 2/2 - FdeT blog

Leave a Reply

A %d blogueros les gusta esto: