ENTRADAS

9 mar 2017

Interfaces Gráficas en MATLAB 2/2

/
Publicado por
/
Comentarios1
/

En el anterior artículo vimos una introducción a las interfaces gráficas en MATLAB, echa un vistazo si no lo has hecho todavía, antes de seguir leyendo.

A continuación, veremos algunos objetos más y cómo hacer que una interfaz gráfica funcione mediante algunos ejemplos.

Interfaces Gráficas en MATLAB

MATLAB. Interfaz con GUIDE 1

Antes de comenzar, para abrir una interfaz que tenemos a medio hacer, el procedimiento no es de lo más intuitivo. Hemos de ir a la pestaña Home, New, Graphical User Interface, como si fuésemos a crear una nueva. En este caso, en la ventana damos en la pestaña Open Existing GUI… y desde ahí podemos abrir la GUI.

Callbacks

Algunos objetos deben realizar algo cuando se interactúa con ellos, por ejemplo un botón (Push Button) cuando se pulsa o una casilla de verificación (Check Box) cuando se marca. Un Callback es la función que se ejecuta cuando se interactúa con uno de estos objetos.

Para programar el Callback en un botón, añadimos un Push Button, abrimos la ventana de propiedades, vamos a la propiedad Callback y clicamos en el botón que tiene al lado.

Interfaces Gráficas en MATLAB

Interfaz con GUIDE 2

Esto nos llevará a la parte del script donde se habrá insertado el Callback.

Interfaces Gráficas en MATLAB


Inserción del Callback dentro de nuestro Script

El código que escribamos dentro de esta función se ejecutará cada vez que pulsemos el botón

Ejemplo. Número aleatorio

Vamos a realizar un ejemplo que consiste en un programa que devuelva un número aleatorio en una etiqueta cada vez que se pulse un botón.

Para ello utilizaremos una etiqueta, cuya propiedad String inicial la pondremos a “0” en la ventana de propiedades. De la misma manera, configuramos que en el botón aparezca “Go!”. Para cambiar propiedades como el nombre del programa que aparece en la barra superior podemos acceder a propiedades de la GUI en sí, haciendo doble clic en el fondo.

Interfaces Gráficas en MATLAB

Interfaz con GUIDE 3

Ahora vamos al Callback del botón y escribimos que se genere un número aleatorio con la función rand. A continuación, establecemos la propiedad String de la etiqueta, como vimos en el artículo anterior, para que muestre el número generado.

 Interfaces Gráficas en MATLAB

Generación del número aleatorio en el Script

Nótese que la segunda vez que aparece “numero” no lleva comillas porque se trata de una variable, no de un texto.

Ya podemos ejecutar el programa.

Interfaces Gráficas en MATLAB

Programa ejecutado

Axes

La mayoría de objetos de GUIDE no extrañan mayor dificultad a la hora de usarlos, y menos tras unas búsquedas en Google. Un objeto muy útil es Axes, que sirve para graficar datos, cargar imágenes y varias cosas más.

Para graficar algo en este objeto existe una manera que no consiste en modificar una propiedad. Primero, hemos de seleccionar el objeto Axes que queremos modificar, porque podemos tener varios. Para ello usamos:

axes(handles.TAG)

Después, antes de graficar conviene borrar su contenido en ese momento:

cla

Finalmente graficamos lo que queramos:

plot([1 2 3 4 5])

Ejemplo. Graficar un número determinado de números aleatorios

En el siguiente ejemplo introduciremos en una casilla un número que será la cantidad de valores aleatorios que se mostrarán en una gráfica al pulsar un botón.

Para ello necesitamos una casilla Edit Text, un botón Push Button y un objeto Axes. Ajustamos las posiciones y utilizando la venta de propiedades, configuramos el texto que muestran al inicio.

Interfaces Gráficas en MATLAB

Interfaz con GUIDE 4

Ahora programamos el script. Vamos al Callback del botón y escribimos lo siguiente.

 Interfaces Gráficas en MATLAB

Inclusión de ejes en nuestro Script

Ejecutamos el programa.

 

Interfaces Gráficas en MATLAB

Ejecución del programa

Trucos

Algunos apuntes interesantes para quien se inicia en la creación de interfaces son los siguientes:

  • Redimensionar la interfaz

Por defecto la interfaz no se puede redimensionar al ejecutarse. Para cambiar esto, accedemos a las propiedades de la GUI haciendo doble clic en el fondo y cambiamos Resize a On. Ahora ya podemos redimensionar, pero los elementos de la interfaz se quedarán con el mismo tamaño. Para solucionarlo, en las propiedades de cada objeto cambiamos Units a normalized. Puedes seleccionar todos los objetos con Ctrl+A y hacerlo de una vez.

  • Exportar variables al workspace

Las variables que se crean durante la ejecución de la interfaz no aparecen en el workspace de MATLAB, de manera que no podemos ver lo que contienen, lo que no es nada bueno para encontrar fallos en el código. Para exportar una variable al workspace de MATLAB se puede introducir la siguiente línea de código, de manera que cuando se ejecute dicha línea, la variable y su contenido aparecerán en el workspace:

assignin(‘base‘,’NOMBRE_CON_EL_QUE_SE_GUARDA‘,VARIABLE_A_GUARDAR)

Por ejemplo, para exportar “vector” del ejemplo anterior:

assignin(‘base‘,’vector‘,vector)

Con las herramientas expuestas en estos artículos y un poco de experiencia previa con MATLAB, se pueden conseguir programas muy útiles para multitud de ocasiones. Para lo demás que no ha tenido cabida, por suerte la mayoría de dudas sobre MATLAB y GUIDE ya se encuentran resueltas, sólo hay que realizar una búsqueda en Google con las palabras adecuadas.

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 1/2 - FdeT blog

Leave a Reply

A %d blogueros les gusta esto: