Matlab

Modificar los elementos de una ventana desde otra en Matlab

A medida que crecen las aplicaciones creadas con Guide o App Designer en Matlab puede ser necesario usar más de una venta. Siendo en estos casos puede ser necesario modificar los elementos de una ventana desde otra. En este tutorial se va a explicar como modificar los elementos de una ventana desde otra con Guide en Matlab.

Creación de dos ventanas

A modo de ejemplo vamos a crear dos ventanas con GUIDE. En la primera solamente situaremos y un botón con el que llamar a los controles. Esta es la ventana, a la que nombraremos como `guide_1, es la que se muestra a continuación.

Para facilitar el trabajo usaremos los nombres por defecto de los elementos. Por lo que tendremos unos ejes con nombre axes1 y un botón llamado pushbutton1. La enviar un gráfico diferente a los ejes desde una segunda venta. Ahora crearemos una segunda ventana en la que se situarán dos botones.

A la que llamaremos guide_2 y también usaremos los valores por defecto de los elementos.

Envío de información de la primera ventana a la segunda

Una vez creadas las ventanas necesitamos desde la primer llamar a la segunda y enviar el identificador de los ejes. Esto se hace desde el callback del botón de la primera figura. En el que se escribirá el código:

function pushbutton1_Callback(hObject, eventdata, handles)

guide_2(handles.axes1);

Lo que hace este es llamar a la segunda ventana y pasarle los handles del eje. En caso de que tengamos más objetos sobre los que deseemos actuar desde la segunda venta también deberíamos ponerlos en la llamada. Este es realmente el punto importante, para poder dibujar desde la segunda ventana esta ha de poder los elementos de la primera sobre los que trabajar.

Recepción de los datos en la segunda venta

En la segunda venta es necesario recoger los datos para enviados y guardarlos para su uso. Los datos se encuentran en la variable varargin de la función guide_2_OpeningFcn, la función que se llama cuando se abre una aplicación de GUIDE. varargin es una celda con longitud igual a los parámetros pasados en la llamada a la ventana. En este caso los handles de los ejes. Así solamente es necesario guardarlos en la variable handles de la ventana para tenerlos disponibles más adelante.

function guide_2_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;
handles.axes = varargin{1};
guidata(hObject, handles);

Es importante hacer esto antes de la línea guidata(hObject, handles);, ya que es cuando se guardan los datos.

Funciones en la segunda ventana

Ahora se puede agregar funciones en los callbacks de la segunda ventana que pueden dibujar en la primera. Ejemplos básicos puede ser dibujar una función seno o coseno.

function pushbutton1_Callback(hObject, eventdata, handles)

x = 0:0.01:10;
plot(handles.axes, x, sin(x));


function pushbutton2_Callback(hObject, eventdata, handles)

x = 0:0.01:10;
plot(handles.axes, x, cos(x));

Dibujar en la primera ventana desde la segunda.

En este punto si se lanza guide_1

y desde este el segundo.

Es posible dibujar en la primera ventana pulsando sobre cualquiera de los botones.

Conclusiones

En esta entrada se ha visto una técnica para modificar los elementos de una ventana desde otra con Guide en Matlab. Algo que puede ser útil cuando las aplicaciones creadas con esta herramienta crecen. Aunque hoy en día puede ser más interesante migrar las aplicaciones a App Desginer, ya que este soporta ventanas más complejas.

Imagen de William Iven en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: GUIGUIDE

Recent Posts

Analytics Lane lanza ScoreFlow, un SaaS para construir y desplegar scorecards de crédito

En Analytics Lane seguimos evolucionando nuestras herramientas y damos un paso más con el lanzamiento…

3 días ago

DBSCAN y la selección de ε: teoría, intuición y aplicación práctica

Cuando hablamos de clustering, lo primero que viene a la mente suele ser k-means. Pero…

4 días ago

El bestiario de los indicadores económicos absurdos: El zoo patrio

Cualquier país desarrollado tiene sus propios indicadores folclóricos. España, por motivos que tienen mucho que…

1 semana ago

Por qué el banco te ofrece un 3% TAE y no es lo que parece

Entras a la web de tu banco. En la página principal, un banner llamativo: “Depósito…

2 semanas ago

Analytics Lane lanza la versión 1.3 del laboratorio con nuevas herramientas de evaluación de modelos y utilidades prácticas

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.3, disponible…

2 semanas ago

This website uses cookies.