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

Curiosidad: La Paradoja de Simpson, o por qué no siempre debes fiarte de los promedios

En ciencia de datos y estadística, los promedios y porcentajes son herramientas fundamentales para resumir…

17 horas ago

Copias de seguridad automáticas en SQL Server con rotación de archivos

Las bases de datos son el corazón de casi cualquier sistema de información moderno. Ya…

3 días ago

Curiosidad: La Ley de Twyman y la trampa de los datos “interesantes”

En ciencia de datos, pocas cosas llaman más la atención de los científicos de datos…

1 semana ago

Cómo calcular el tamaño de la muestra para encuestas

Calcular adecuadamente el tamaño de la muestra es una parte esencial en el diseño de…

1 semana ago

Curiosidad: El origen del análisis exploratorio de datos y el papel de John Tukey

Hoy en día, cuando pensamos en ciencia de datos, lo primero que nos viene a…

2 semanas ago

Cómo extender el tamaño de un disco en Rocky Linux 9 usando growpart y LVM

Ampliar el espacio de almacenamiento en un sistema Linux es una tarea habitual y crítica…

2 semanas ago

This website uses cookies.