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

De la Regresión Logística al Scorecard: La Transformación Matemática

En un entrada previa explicamos qué son el WOE y el IV y por qué…

1 día ago

Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring

Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…

2 días ago

Interés compuesto: la fuerza que multiplica tu dinero (y los errores que la anulan)

“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…

6 días ago

Cómo comparar datos con barras en Matplotlib: agrupadas, apiladas y porcentuales

Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…

1 semana ago

Costes hundidos en ciencia de datos: cuándo mantener un modelo y cuándo migrar

Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…

2 semanas ago

WOE e IV: La Base Matemática del Credit Scoring

Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…

2 semanas ago

This website uses cookies.