Introducción a MATLAB, comandos
2.1 EJECUTAR PROGRAMAS EN MATLAB
2.2.2 Código asociado a cada elemento del GU
Automáticamente al crear el GUI y salvarlo aparece en el archivo .m una cantidad de líneas de código jas. En la primera parte del script aparece una cantidad de líneas de código jo. La primera instrucción "function varargout = untitled(varargin)" indica que se está creando un GUI de nombre untitled con argumentos de salida varargout y argumentos de entrada varagin. Solo se muestran las dos primeras y la última línea.
Figure 2.7: Código generado al crear y guardar el GUI
Aquí comienza un código de inicialización que se pide no se edite. También se muestra solo la primera y última línea.
Figure 2.8: Código jo de inicialización
Hasta aquí llega el código de inicialización. Comienza entonces lo que se desea que ocurra antes de que el GUI se haga visible.
38 CHAPTER 2. INTRODUCCIÓN A MATLAB, COMANDOS BÁSICOS Y USO DE GUIDE
Figure 2.9: Función OpeningFCN para un programa de nombre "untitled"
Luego de esto aparecen callback dependiendo de las herramientas que se han incorporado al GUI. Por ejemplo:
39 Aquí se han colocado 3 Radio Button, 1 Push Button, un Pop-Up menú y 1 eje para gracar.
A continuación se describen brevemente las herramientas disponibles, el código automático asociado a cada una de ellas y como interactuar con las mismas.
2.2.2.1 Botón pushbutton
Se ejecuta una determinada acción cuando son presionados. En el archivo .m aparecen automáticamente un grupo de instrucciones asociadas a él.
Figure 2.11: Callback para elemento de tag "pushbutton1"
2.2.2.2 Listas de selección
Aquí se puede colocar una lista de elementos para que el usuario pueda seleccionar alguno. En el archivo .m aparecen automáticamente un grupo de instrucciones asociadas a él.
Figure 2.12: Parte del código generado por elemento de tag "listbox1"
Figure 2.13: Callback para elemento de tag "listbox1"
Como se observa en la ayuda (Hint) que aparece en las dos últimas líneas, si dentro del callback de este elemento se coloca la instrucción A=get(hObject,'String'), se obtendrá un número que indica que selección se hizo. Por ejemplo si se seleccionó el tercer elemento de la lista, A valdrá 3. Lo mismo puede lograrse con
40 CHAPTER 2. INTRODUCCIÓN A MATLAB, COMANDOS BÁSICOS Y USO DE GUIDE la instrucción A=get(handles.listbox1,'Value'), donde listbox1 es el tag de este elemento. La ventaja de esta instrucción es que no tiene obligatoriamente que ser llamada desde el callback del elemento.
2.2.2.3 Botón edit
Permite a los usuarios ingresar o modicar parámetros que se quieren introducir.
Figure 2.14: Callback para elemento de tag "edit1"
Obsérvese la ayuda (HINT). Si dentro del callback de este elemento se coloca la instrucción A=str2double(get(hObject,'String')), entonces, se podrá tener en A el valor del número que se escribió en la casilla
Si dentro del callback se coloca la instrucción A= get(hObject,'String'), se podrá almacenar en A los caracteres escritos
Una forma más recomendable de almacenar en una variable A el contenido de la casilla es con la instruc- ción A= get(handles.edit1,'String'), donde edit1 es el tag del botón. Esta instrucción puede ser colocada en otro callback que no sea el del botón o incluso en la función OpeningFCN de la gura 9. Si se desea acceder al valor numérico escrito en la casilla, se hace uso de la instrucción A=str2double(get(handles.edit1,'String')). Si se desea colocar el valor de la variable A en la casilla, se hace uso de la instrucción set(handles.edit1,'String',A)
2.2.2.4 Botón RadioButton
Son botones de selección. Si hay varios generalmente son mutuamente excluyentes. Para seleccionarlo basta ubicarse y presionar el ratón.
Figure 2.15: Callback para elemento de tag "radiobutton1"
Colocándose dentro de callback del elemento la instrucción A=get(hObject,'Value'), A valdrá 1 si el botón fue seleccionado, y 0 en caso contrario. Lo mismo puede lograrse con la instrucción A=get(handles.radiobutton1,'Value'), donde radiobutton1 es el tag de este elemento. La ventaja de esta instrucción es que no tiene obligatoriamente que ser llamada desde el callback del elemento.
2.2.2.5 Ejes para gracar
Aquí no se genera nada especial en el archivo .m, pero uno debe jar las condiciones de la gráca y activarla o desactivarla según convenga.
41 Por ejemplo si la gráca tiene asociado el nombre de axes1 (tag) y se quiere mostrar algo a través de la misma por medio de la instrucción "plot(...)" se debe agregar primero el comando "axes" como se muestra a continuación:
axes(handles.axes1); plot(...)
2.2.2.6 PopUp menú
Cuando se hace click despliega opciones. Para agregar elementos a la lista, en el editor de propiedades se busca el elemento string y allí se coloca la lista de las opciones.
Figure 2.16: Parte del código generado por elemento de tag "popupmenu1"
Figure 2.17: Callback para elemento de tag "popupmenu1"
Si se coloca dentro del callback de este elemento la instrucción A=get(hObject,'Value'), se obtendrá un número que indica que selección se hizo. Por ejemplo si se seleccionó el tercer elemento de la lista, A valdrá 3. Lo mismo puede lograrse con la instrucción A=get(handles.popupmenu1,'Value'), donde popupmenu1 es el tag de este elemento. La ventaja de esta instrucción es que no tiene obligatoriamente que ser llamada desde el callback del elemento.
42 CHAPTER 2. INTRODUCCIÓN A MATLAB, COMANDOS BÁSICOS Y USO DE GUIDE