SlideShare una empresa de Scribd logo
1 de 38
ESCUELA SUPERIOR POLITECNICA DEL CHIMBORAZO
INGENIERIA AUTOMOTRIZ
Integrantes:
Xavier Maita
Jhonatan Lema
David Tuarez
Abril 2017– Agosto 2017
Asignatura: Computación II
Instructor: Ing. Luis Danilo Flores Rivera, Mg
Curso: 3ro “B”
MATLAB
INTERFAZ GRÁFICA DE USUARIO
GUIDE
• La interfaz gráfica de usuario (GUI - Graphical User
Interface), es la forma en que el usuario interactúa con el
programa o el sistema operativo de una computadora.
• Una GUI contiene diferentes elementos gráficos tales como:
botones, campos de texto, menús, gráficos, etc.
• MatLab nos permite realizar GUIs de una manera muy
sencilla usando GUIDE (Graphical User Interface
Development Enviroment).
• GUIDE es un entorno de programación visual disponible en
MatLab para realizar y ejecutar programas que necesiten
ingreso continuo de datos. Tiene las características básicas
de todos los programas visuales como Visual Basic o Visual
C++.
CARACTERÍSTICAS GENERALES
DE UNA GUI EN MATLAB
• Una de las tantas herramientas con la que cuenta MatLab,
es la creación de GUIs, que son muy útiles para presentar
un desarrollo final y adhieren usabilidad al ajuste de
parámetros y visualización de un programa
• La forma de implementar las GUI con MatLab es crear los
objetos y definir las acciones que cada uno va a realizar. Al
usar GUIDE obtendremos dos archivos:
 Un archivo .FIG: Contiene la descripción de los
componentes que contiene la interfaz.
 Un archivo .M: Contiene las funciones y los controles
del GUI así como el callback.
• Un callback se define como la acción que llevará a cabo un
objeto de la GUI cuando el usuario lo active. Por ejemplo,
suponga que en una ventana existe un botón el cual al
presionarlo ejecutará una serie de acciones, a eso se le
conoce como la función del callback.
VENTANA DE INICIO DE GUI
VENTANA DE INICIO DE GUI
OPCIONES:
6
Blank GUI
(Default)
La opción de interfaz gráfica de usuario en blanco (viene
predeterminada), nos presenta un formulario nuevo, en el
cual podemos diseñar nuestro programa.
GUI with
Uicontrols
Esta opción presenta un ejemplo en el cual se calcula la
masa, dada la densidad y el volumen, en alguno de los dos
sistemas de unidades. Podemos ejecutar este ejemplo y
obtener resultados.
GUI with Axes
and Menu
Esta opción es otro ejemplo el cual contiene el menú File
con las opciones Open, Print y Close. En el formulario tiene
un Popup menu, un push button y un objeto Axes, podemos
ejecutar el programa eligiendo alguna de las seis opciones
que se encuentran en el menú despegable y haciendo clic en
el botón de comando.
Modal
Question
Dialog
Con esta opción se muestra en la pantalla un cuadro de
diálogo común, el cual consta de una pequeña imagen, una
etiqueta y dos botones Yes y No, dependiendo del botón que
se presione, el GUI retorna el texto seleccionado (la cadena
de caracteres ‘Yes’ o ‘No’).
INTERFAZ GRÁFICA DE USUARIO EN BLANCO
ÁREA DE DISEÑO
PALETA DE
COMPONENTES
BARRA DE MENÚS
BARRA DE
HERRAMIENTAS
INTERFAZ GRÁFICA DE USUARIO
BARRA DE HERRAMIENTAS:
INTERFAZ GRÁFICA DE USUARIO
9
• Para obtener la etiqueta de cada elemento de la paleta de
componentes ejecutamos: File Preferences y seleccionamos Show
names in component palette.
INTERFAZ GRÁFICA DE USUARIO
• La siguiente tabla muestra una descripción de los componentes de la
paleta de componentes:
PROPIEDADES DE LOS COMPONENTES DE UNA
GUI
• Cada uno de los elementos de GUI, tiene un conjunto de opciones que
podemos acceder con clic derecho.
INSPECTOR DE PROPIEDADES
12
• La opción Property Inspector nos
permite personalizar cada elemento.
• Cuando se le da doble clic a un control,
muestra una ventana listando todas las
propiedades de ese control (fuente,
posición, tamaño, etc.).
• Tag: es el nombre del control en el
código, es mejor renombrarlo por algo
identificable.
• String: es el texto que aparece en el
control.
• ForegroundColor: color del texto.
• BackgroundColor: color del control.
VIEW CALLBACKS
• Al hacer clic derecho en el elemento
ubicado en el área de diseño, una de
las opciones más importantes es View
Callbacks, la cual, al ejecutarla, abre el
archivo .m asociado al diseño y nos
posiciona en la parte del programa que
corresponde a la subrutina que se
ejecutará cuando se realice una
determinada acción sobre el elemento
que se está editando.
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
 Se pueden borrar los comentarios.
CARACTERÍSTICAS GENERALES
DE UNA GUI EN MATLAB
•Una aplicación GUIDE consta de dos archivos: .m y .fig. El
archivo .m es el que contiene el código con las
correspondencias de los botones de control de la interfaz y
el archivo .fig contiene los elementos gráficos.
•Cada vez que se adicione un nuevo elemento en la interfaz
gráfica, se genera automáticamente código en el archivo .m.
•Para ejecutar una interfaz gráfica, si la hemos etiquetado
con el nombre interfaz.fig, tenemos 3 opciones:
Ejecutando en la ventana de comandos:
>>interfaz.
Haciendo clic derecho en el m-file y seleccionando la
opción RUN.
Presionando la flecha verde en la parte superior del editor
GUI se grabará el trabajo actual y correrá el programa (La
primera vez que se lo corra preguntará el nombre del
programa),
14
CARACTERÍSTICAS GENERALES
DE UNA GUI EN MATLAB
15
Entonces, ahora ya tenemos un archivo (interfaz.fig) y otro archivo
(interfaz.m)
SENTENCIA GUIDATA
• guidata es la función que guarda las variables y propiedades de los
elementos en la estructura de datos de la aplicación, por lo tanto, como
regla general, en cada subrutina se debe escribir en la última línea lo
siguiente:
guidata(hObject,handles);
• Esta sentencia nos garantiza que cualquier cambio o asignación de
propiedades o variables quede almacenado.
• Por ejemplo, si dentro de una subrutina o de una operación dio como
resultado una variable resultado para poder utilizarla desde el programa
u otra subrutina debemos salvarla de la siguiente
manera:handles.resultado=resultado;
guidata(hObject,handles);
• La primera línea crea la variable resultado a la estructura de datos de la
aplicación apuntada por handles y la segunda graba el valor.16
SENTENCIAS GET Y SET
• Cómo recuperamos el valor de una propiedad de un control?
valor = get (handles.control, ‘propiedad’)
• La asignación u obtención de valores de los componentes se realiza mediante las sentencias get y set.
Por ejemplo si queremos que la variable salida tenga el valor del slider1 escribimos:
salida= get(handles.slider1,'Value');
• Los datos siempre se obtienen a través de los identificadores handles.
• Cómo asignamos valor a las propiedades de los controles?
set (handles.control, ‘propiedad’, valor)
handles es una estructura que, por medio de un puntero, asigna el valor de la propiedad al
control.
• Para asignar el valor de la variable salida al statictext etiquetada como text1escribimos:
set(handles.text1,'String',salida); %Escribe el valor del Slider1
%en static-text
Cuando se modifica el código del m-file no se tiene que volver a correr la GUI (solo se ha modificado
la funcionalidad).
COMANDO UICONTROL
El comando uicontrol permite definir los
controles gráficos de MatLab.
MATLAB permite desarrollar programas con el
aspecto típico de las aplicaciones de Windows.
Estudiaremos cómo crear algunos de los
controles más utilizados. Para todos los
controles, se utilizará la función uicontrol, que
permite desarrollar dichos controles. La forma
general del comando uicontrol es la siguiente:
id_control =
uicontrol(id_parent,'Propiedad1',valor1,...
'Propiedad2',valor2, (otras
propiedades),'callback','sentencias')
COMANDO UICONTROL
El comando uicontrol permite definir los controles
gráficos de MATLAB descritos en los siguientes
apartados. Estos controles reciben las acciones de
los usuarios, que se denominan eventos (por
ejemplo, clicar en un botón, cambiar el valor de una
barra de desplazamiento, ...). A continuación se
explican algunas de las propiedades de uicontrol.
OPCIONES DEL COMANDO UICONTROL
• El comando uicontrol permite definir los controles
gráficos de MatLab.
20
COLOR DEL
OBJETO
(BACKGROUNDCOLOR)
Controla el color del objeto. Por defecto éste suele
ser gris claro, aunque puede tomar distintos valores:
green, red, white, etc. Éstos irán definidos entre
comillas (por ejemplo 'green')
ACCIÓN A
EFECTUAR POR EL
COMANDO
(CALLBACK)
Este comando especifica la acción a efectuar por
MATLAB al actuar sobre el control. Se trata de una
expresión u orden, almacenada en una cadena de
caracteres, que se ejecutará al activar el control. Esta
instrucción es equivalente a realizar eval(‘expresión’)
CONTROL
ACTIVADO/DESACTIVADO
(ENABLE)
Este comando permite desactivar un control, de tal
forma que una acción sobre el mismo (por ejemplo,
apretar sobre el mismo con el ratón) no produce
ningún efecto. Los valores que puede tomar esta
variable son on u off
ALINEAMIENTO
HORIZONTAL DEL
TITULO
(HORIZONTALALIGNMENT)
Esta opción determina la posición del título del
control en el mismo. Los valores que puede tomar
son: left, center o right
OPCIONES DEL COMANDO UICONTROL
21
VALOR MÁXIMO
(MAX)
Esta opción determina el máximo valor que puede
tomar un valor cuando se utilizan cajas de textos o
botones de opción. En caso de botones tipo on/off,
que solamente admiten las dos posiciones de
abierto y cerrado, esta variable corresponde al valor
del mismo cuando está activado
VALOR MÍNIMO (MIN) Análogo a la opción anterior para el valor mínimo
CONTROL DEL
OBJETO PADRE
(PARENT)
Esta opción especifica el id del objeto padre. Debe ir
siempre en primer lugar
POSICIÓN DEL OBJETO
(POSITION)
En esta opción se determina la posición y el tamaño
del control dentro del objeto padre. Para ello se
define un vector de cuatro elementos, cuyos valores
siguen el siguiente orden: [izquierda, abajo,
longitud, altura]. Aquí izquierda y abajo son la
distancia a la esquina inferior izquierda de la figura
y longitud y altura las dimensiones del control
VISIBLE
(VISIBLE)
Puede tomar dos valores: on/off. Indica si el control
es visible en la ventana o no. Este comando es
similar al Enable, si bien éste además de quedar
inhabilitado el control éste desaparece de la pantalla
OPCIONES DEL COMANDO UICONTROL
22
NOMBRE DEL
OBJETO
(STRING)
Esta opción define el nombre que aparecerá en el
control. Cuando el control sea una opción de menú
desplegable (popup menu), los nombres se sitúan en
orden dentro del string, separados por un carácter
barra vertical (|)
TIPO DE CONTROL
(STYLE)
Esta opción puede tomar los siguientes valores:
pushbutton, radiobutton, checkbox, slider, edit,
popupmenu y text, según el tipo de control que se
desee (pueden usarse nombres abreviados: así,
pushbutton puede abreviarse en push)
UNIDADES
(UNITS)
Unidades de medida en las que se interpretará el
comando Position. Los valores que puede tomar Units
son: pixels (puntos de pantalla), normalized
(coordenadas de 0 a 1), inches (pulgadas), cent
(centímetros), points (equivalente a 1/72 parte de una
pulgada). La opción por defecto es pixels
VALOR
(VALUE)
Permite utilizar el valor que tiene del control en un
momento dado. Por ejemplo, un botón de chequeo
(check button) puede tener dos tipos de valores,
definidos por las variables Max y Min.
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
23
• Los controles son objetos que se ubican dentro de GUI y permiten mostrar,
aceptar o validar datos.
• Éstos componentes son los uicontrol de MatLab y es por lo tanto programable en
sus diferentes propiedades.
PUSH BUTTON
El control push button genera una acción cuando el usuario hace un clic sobre él
(por ejemplo, un botón OK puede cerrar una caja de diálogo).
Programando el Callback: cuando el usuario pulsa el botón pushbutton, su callback
se ejecuta y no devuelve un valor ni mantiene un estado.
function pushbutton1_Callback(hObject, eventdata,
handles)
x=linspace(0,2*pi,200);
y=sin(x);
z=cos(x);
plot(x,y, '--',x,z,'*')
grid on;
axis([0 2*pi -1.5 1.5]); % ejes
xlabel('ejex')
ylabel('ejey')
legend('seno','itcoseno') % it=cursiva;
title('FUNCIONES SENO Y COSENO');
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
TOGGLE BUTTON
Los toggles buttons generan una acción e indican un estado
binario (por ejemplo, on u off). Cuando se pulsa el botón toggle
button aparece oprimido y permanece así aún cuando se suelta el
botón del mouse, al tiempo que el callback ejecuta las órdenes
programadas dentro de él. Los subsecuentes clic del mouse
retorna el toggle button al estado de nondepressed y es posible
de nuevo ejecutar su callback.
Programando el Callback: la rutina del callback necesita preguntar
a toggle button para determinar en qué estado esta MatLab y
pone el valor igual a Max de la propiedad cuando el toggle button
está oprimido (Max tiene por defecto 1) e igual a Min cuando el
toggle button no está oprimido (Min tiene por defecto 0).
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
RADIO BUTTON
Este control se utiliza para seleccionar una opción de un grupo de
opciones (es decir, sólo un botón está en estado seleccionado),
para activar un radiobutton, pulse el botón del mouse en el
objeto. Los radiobutton tienen dos estados: seleccionado y no
seleccionado, al cual se accede a través de su propiedad value.
value = Max, el botón se selecciona.
value = Min, el botón no se selecciona.
Programando el Callback: los radio buttons son mutuamente
exclusivos dentro de un grupo de opciones, los callback para cada
radiobutton se deben poner en la propiedad value igual a 0 en
todos los otros radiobuttons del grupo. MatLab pone la propiedad
de value a 1 en el radio button pulsado por el usuario.
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
RADIO BUTTON
function radiobutton1_Callback(hObject, eventdata, handles)
set(handles.radiobutton2,'value',0)
opcion1 = get(handles.radiobutton1,'value');
if opcion1==1
x=linspace(-2,3,3000); %Generamos una tabla de valores en el dominio x
y=(x.^2).*(x<0)+1.*((0<=x)&(x<1))+(-x+2).*(1<=x); %Definimos la función
plot(x,y,'.');
grid on;
title('Función definida a trozos')
end
function radiobutton2_Callback(hObject, eventdata, handles)
set(handles.radiobutton1,'value',0)
opcion2 = get(handles.radiobutton2,'value');
if opcion2==1
[x,y]=meshgrid(-7.5:0.5:7.5); %Generamos la malla [x,y]
z=sin(sqrt(x.^2+y.^2))./(sqrt(x.^2+y.^2));
surfl(x,y,z) %Dibujamos en 3D
title('Z=sin(sqrt(X^2+Y^2))/(sqrt(X^2+Y^2))');
xlabel('x'); ylabel('y'); zlabel('z');
end
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
CHECK BOX
Los checkboxes se utilizan para proporcionar al usuario varias opciones de las que
se puede elegir una o más de una cuando se ha pulsado el botón sobre él, e indica
su estado como verificado o no verificado. La propiedad value indica el estado del
checkbox asumiendo el valor del Max igual a 1 y del Min igual a 0.
Value = Max, la caja se verifica.
Value = Min, la caja no se verifica.
Programando el Callback: se puede determinar el estado actual de un checkbox
desde su callback preguntando el estado de su propiedad en value.
function checkbox1_Callback(hObject, eventdata, handles)
if (get(hObject,'value')==get(h,'Max'))
disp('El checkbox ha sido seleccionado'); %CHECKBOX seleccionado
else
disp('El checkbox no ha sido seleccionado'); %CHECKBOX no seleccionado
end
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
EDIT TEXT
Los controles Edit Text son campos que les permiten a los usuarios
ingresar o modificar cadenas de texto. Cuando se quiera ingresar un
texto, la propiedad string contiene el texto ingresado por el usuario.
Programando el Callback: para obtener la cadena de texto tecleada
por el usuario se consigue de la propiedad string en el callback.
MatLab devuelve el valor de la propiedad string del edit text como
una cadena de caracteres. Si se desea que el usuario ingrese valores
numéricos, se debe convertir los caracteres a números, usando el
comando str2double el cual convierte la cadena a un tipo double. Si
el usuario ingresa caracteres no numéricos, str2double le devolverá
NaN.
function edit1_Callback(hObject, eventdata, handles)
usuario_string = get(handles.edit1,'string') %devuelve la cadena de texto ingresada
%por el usuario en el edit text
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
SLIDER
Los deslizadores o barras de desplazamiento permiten explorar fácilmente
una larga lista de elementos o una gran cantidad de información, y acepta la
entrada numérica dentro de un rango específico, permitiéndole al usuario
mover una barra corrediza. El desplazamiento de la barra se efectúa
presionando el botón del mouse y arrastrando la barra, o pulsando el botón
que posee una flecha. La ubicación de la barra indica un valor numérico.
Existen cuatro propiedades que controlan el rango y tamaño de paso del
deslizador: value Contiene el valor actual del deslizador
Max Define el valor máximo del deslizador, el valor por defecto es 1
Min Define el valor mínimo del deslizador, el valor por defecto es 0
SliderStep
Especifica el tamaño de un paso del deslizador con respecto al
rango, el valor por defecto es [0,01 0,10], proporciona un 1% de
cambio para los clics en las flechas y un 10% de cambio para los
clics en la barra
function slider1_Callback(hObject, eventdata, handles)
slider_valor = get(handles.slider1,'value')
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
STATIC TEXT
Los controles Static Text se utilizan para mostrar texto que el
usuario no puede modificar.
El texto estático se usa frecuentemente para etiquetar otros
mandos y proporciona las direcciones al usuario, o indica valores
asociados con un deslizador (Slider).
Los usuarios no pueden cambiar interactivamente el texto de allí
que en el texto estático no hay ninguna manera de invocar la
rutina de un callback asociada a él.
Static text, no posee función asociada, pero sí una dirección
asociada, que la podemos utilizar para escribir los resultados.
Para saber cuál es esta dirección, haciendo doble-clic en este
componente, la ubicamos en la etiqueta Tag.
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
LIST BOX
Los List Boxes muestran una lista de ítems entre los cuales el
usuario puede seleccionar uno o más ítems.
La propiedad string contiene la lista de cadenas desplegadas en el
listbox. El primer ítem en la lista tiene el índice 1.
La propiedad value contiene el índice en la lista de cadenas que
corresponde al ítem seleccionado. Si el usuario selecciona
múltiples ítems, entonces el value es un vector de índices.
La propiedad List box Top es un índice en la serie de cadenas
defenidas por la propiedad string y debe tener un valor entre 1 y
el número de cadenas.
function listbox1_Callback(hObject, eventdata, handles)
indice = get(handles.listbox1,'value')
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
LIST BOX
Simple o Múltiple selección:
Los valores de las propiedades Min y Max determinan si los usuarios
pueden hacer simples o múltiples selecciones:
 Si Max-Min>1, entonces las cajas de la lista permiten la selección del
ítem múltiple.
 Si Max-Min<1, entonces las cajas de la lista no permiten la selección
del ítem múltiple.
Programando el Callback: MatLab evalúa el callback del listbox después
de que el botón del mouse se suelta o un evento del keypress se ha
efectuado, eso cambia la propiedad de value (es decir, cuando quiera el
usuario pulsa el botón en un ítem, pero no al pulsar el scrollbar en el list
box).
Esto significa que el callback se ejecuta después del primer clic de un
doble-clic en un solo ítem o cuando el usuario está haciendo las
selecciones múltiples, en estas situaciones se deberá agregar otro
componente, como Done button (push button) y programar su rutina del
callback para preguntar el valor de la propiedad list box.
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
POPUP MENU
Los Popup menús permiten visualizar una lista de opciones cuando
los usuarios presionan la flecha.
La propiedad string contiene la lista de cadenas visualizadas en el
popup menu.
La propiedad value contiene el índice del ítem seleccionado de la
lista de cadenas, el primer ítem en la lista tiene el índice 1.
Cuando no abre, un popup menu visualiza la opción actual que es
determinado por el índice contenido en la propiedad value.
Los popup menús son útiles cuando se quiere proporcionar varias
opciones mutuamente exclusivas a los usuarios, y no usar una
mayor cantidad de espacio que una serie de radio buttons requeriría.
Programando el Callback: se puede programar el popup menu para
trabajar verificando sólo el índice del ítem seleccionado (contenido
en la propiedad value) o se puede obtener la actual cadena
contenida en el ítem seleccionado.
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
POPUP MENU
function popupmenu1_Callback(hObject, eventdata, handles)
opcion = get(handles.popupmenu1,'value')
switch opcion
case 1
disp('Se ha seleccionado la opción 1');
case 2
disp('Se ha seleccionado la opción 2');
otherwise
disp('Se ha seleccionado la opción 3');
end
Activando o desactivando controles:
• Se puede saber si un control responde al botón del mouse
usando la propiedad enable (habilitado). Los controles
tienen tres estados:
 on: el control está operativo
 off: el control está inactivo
 inactivo: el mando es inválido, pero su etiqueta no se
graba fuera. Cuando un mando es inválido, mientras se
pulsa el botón izquierdo del mouse no se ejecuta su
rutina del callback.
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
35
AXES
Los ejes (axes) permiten visualizar los gráficos, como todos los objetos
de los gráficos, los ejes tienen las propiedades para controlar su
apariencia.
Programando el Callback: los ejes no son objetos uicontrol, pero
pueden programarse para ejecutar un callback cuando los usuarios
pulsen el botón del mouse en los ejes. Use la propiedad
ButtonDownFcn de los ejes para definir el callback.
Axes es la función de bajo nivel para la creación de gráficos. MatLab
crea automáticamente un eje, si no existe ya, cuando se emite un
comando que crea un gráfico.
Si una GUI tiene múltiples ejes, se debe especificar qué ejes se desea
permanezcan en blanco explícitamente cuando se emite las órdenes de
plot.
axes(handles.axes1)
Se construyen los ejes cuya propiedad Tag son axes1 los ejes actuales,
y por consiguiente el blanco por trazar las órdenes, se puede cambiar
los ejes actuales todas las veces que se quiera al blanco de unos ejes
diferentes.
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
PANEL
Se puede hacer una GUI fácil de entender visualmente agrupando varios controles relacionados. Un
panel puede contener los paneles y grupos de botones, así como ejes y los controles de interfaz de
usuario tales como: botones, barras de desplazamiento, menús pop-up, etc. La posición de cada
componente dentro de un panel se interpreta en relación a la esquina inferior izquierda del panel. En
general, si la GUI cambia de tamaño, el panel y sus componentes también cambian de tamaño. Sin
embargo, se puede controlar el tamaño y la posición del panel y sus componentes. Se puede hacer
esto mediante el establecimiento de la propiedad cambiar el tamaño de la GUI y proporcionar
ResizeFcn callback para el panel.
BUTTON GROUP
Los grupos de botones son como los paneles, excepto que manejan una selección exclusiva de
botones de opción y botones de selección. Si un grupo de botones contiene un conjunto de botones
de opción, botones de selección, o ambas cosas, el grupo de botones permite que sólo uno de ellos
pueda ser seleccionado. Cuando un usuario hace clic en un botón, el botón está seleccionado y
todos los demás botones dejan de estarlo. En la programación de un grupo de botones, se usa
SelectionChangeFcn callback para gestionar las respuestas a las selecciones.
EJEMPLO: CREAR UN PROGRAMA QUE CALCULE
EL FACTORIAL DE CUALQUIER NUMERO
• Para este ejercicio ingresamos a la interfaz gráfica
mediante el comando “guide”, y utilizaremos los
comando o botones de: “push bottom”, “static text” y
“edit text”. Mediante las propiedades de cada botón
construiremos nuestro programa ingresando las
variables y operaciones adecuadas para el correcto
funcionamiento del programa.
• Como arreglo adicional para una interfaz amigable a
la vista se agrego una imagen de fondo con el
comando “axes”
BIBLIOGRAFÍA:
• Desmond J. Higham, Nicolas J. Higham. (2000). Mathlab guide.
México: Siam.
• Marc E. Herniter. (2001). Programing in Matlab. España:
Thomson learning.
• https://es.mathworks.com/discovery/matlab-gui.htmlENLACE SLIDESHARE DE INVESTIGACIÓN:
Revisar en EVA

Más contenido relacionado

La actualidad más candente

Introducción a Swing
Introducción a SwingIntroducción a Swing
Introducción a Swingmrojas_unitec
 
Simulación clase04
Simulación clase04Simulación clase04
Simulación clase04Tensor
 
Layouts - Java
Layouts - JavaLayouts - Java
Layouts - Javanjca01
 
Simulación Clase 3
Simulación Clase 3Simulación Clase 3
Simulación Clase 3Tensor
 
Confección de interfaces de usuario con JAVA - SWING
Confección de interfaces de usuario con JAVA - SWINGConfección de interfaces de usuario con JAVA - SWING
Confección de interfaces de usuario con JAVA - SWINGJose Benítez Andrades
 
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de Usuario
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de UsuarioTopicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de Usuario
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de UsuarioJosé Antonio Sandoval Acosta
 
Programación III (Java) - 06 Ventanas
Programación III (Java) - 06 VentanasProgramación III (Java) - 06 Ventanas
Programación III (Java) - 06 VentanasAndoni Eguíluz Morán
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicularTensor
 
AWT- JAVA
AWT- JAVAAWT- JAVA
AWT- JAVAale8819
 
Semana2 3 introducción_labview
Semana2  3 introducción_labviewSemana2  3 introducción_labview
Semana2 3 introducción_labviewdagar71
 
Guis en java-1pp_2012_
Guis en java-1pp_2012_Guis en java-1pp_2012_
Guis en java-1pp_2012_Robert Wolf
 
Tutoria visual basic yolimar rosario
Tutoria visual basic yolimar rosarioTutoria visual basic yolimar rosario
Tutoria visual basic yolimar rosarioYODLIROSS
 

La actualidad más candente (19)

Introducción a Swing
Introducción a SwingIntroducción a Swing
Introducción a Swing
 
Win qsb2.0
Win qsb2.0Win qsb2.0
Win qsb2.0
 
Simulación clase04
Simulación clase04Simulación clase04
Simulación clase04
 
Layouts - Java
Layouts - JavaLayouts - Java
Layouts - Java
 
Sesion10 Interfaces Graficas Usuarios - java
Sesion10 Interfaces Graficas Usuarios - javaSesion10 Interfaces Graficas Usuarios - java
Sesion10 Interfaces Graficas Usuarios - java
 
Simulación Clase 3
Simulación Clase 3Simulación Clase 3
Simulación Clase 3
 
Swing1
Swing1Swing1
Swing1
 
Confección de interfaces de usuario con JAVA - SWING
Confección de interfaces de usuario con JAVA - SWINGConfección de interfaces de usuario con JAVA - SWING
Confección de interfaces de usuario con JAVA - SWING
 
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de Usuario
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de UsuarioTopicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de Usuario
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de Usuario
 
Programación III (Java) - 06 Ventanas
Programación III (Java) - 06 VentanasProgramación III (Java) - 06 Ventanas
Programación III (Java) - 06 Ventanas
 
Taller 1 7
Taller 1 7Taller 1 7
Taller 1 7
 
Layout
LayoutLayout
Layout
 
12swing gui
12swing gui12swing gui
12swing gui
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicular
 
Entorno labview
Entorno labviewEntorno labview
Entorno labview
 
AWT- JAVA
AWT- JAVAAWT- JAVA
AWT- JAVA
 
Semana2 3 introducción_labview
Semana2  3 introducción_labviewSemana2  3 introducción_labview
Semana2 3 introducción_labview
 
Guis en java-1pp_2012_
Guis en java-1pp_2012_Guis en java-1pp_2012_
Guis en java-1pp_2012_
 
Tutoria visual basic yolimar rosario
Tutoria visual basic yolimar rosarioTutoria visual basic yolimar rosario
Tutoria visual basic yolimar rosario
 

Similar a Presentación interfaz gráfica_matlab

Similar a Presentación interfaz gráfica_matlab (20)

Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
DIAPOSITIVA - GUIDE.pptx-----------------------------
DIAPOSITIVA - GUIDE.pptx-----------------------------DIAPOSITIVA - GUIDE.pptx-----------------------------
DIAPOSITIVA - GUIDE.pptx-----------------------------
 
interfaz grafica
interfaz graficainterfaz grafica
interfaz grafica
 
Mini Tutorial De Matlab
Mini Tutorial De MatlabMini Tutorial De Matlab
Mini Tutorial De Matlab
 
Guide
GuideGuide
Guide
 
Guide
GuideGuide
Guide
 
Herramientas y Desarrollo de Software
Herramientas y Desarrollo de SoftwareHerramientas y Desarrollo de Software
Herramientas y Desarrollo de Software
 
VBA Interfaz de usuario
VBA Interfaz de usuarioVBA Interfaz de usuario
VBA Interfaz de usuario
 
VERUSKA SALA
VERUSKA SALAVERUSKA SALA
VERUSKA SALA
 
Visual basic ..!
Visual basic ..!Visual basic ..!
Visual basic ..!
 
Roxana
RoxanaRoxana
Roxana
 
Visual basic
Visual basicVisual basic
Visual basic
 
Visual basic
Visual basicVisual basic
Visual basic
 
Visualbasic6.0
Visualbasic6.0Visualbasic6.0
Visualbasic6.0
 
Manual de visual basic
Manual de visual basicManual de visual basic
Manual de visual basic
 
Curso De Microsoft Visual Fox Pro For Windows
Curso De Microsoft Visual Fox Pro  For WindowsCurso De Microsoft Visual Fox Pro  For Windows
Curso De Microsoft Visual Fox Pro For Windows
 
Loreidys gonzales fundamentos de visual basic
Loreidys gonzales fundamentos de visual basicLoreidys gonzales fundamentos de visual basic
Loreidys gonzales fundamentos de visual basic
 
Visual Basic 6.0
Visual Basic 6.0Visual Basic 6.0
Visual Basic 6.0
 
Visual Basic
Visual BasicVisual Basic
Visual Basic
 

Último

EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirPaddySydney1
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPANEP - DETP
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativafiorelachuctaya2
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 

Último (20)

EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartir
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETP
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativa
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 

Presentación interfaz gráfica_matlab

  • 1. ESCUELA SUPERIOR POLITECNICA DEL CHIMBORAZO INGENIERIA AUTOMOTRIZ Integrantes: Xavier Maita Jhonatan Lema David Tuarez Abril 2017– Agosto 2017 Asignatura: Computación II Instructor: Ing. Luis Danilo Flores Rivera, Mg Curso: 3ro “B”
  • 3. GUIDE • La interfaz gráfica de usuario (GUI - Graphical User Interface), es la forma en que el usuario interactúa con el programa o el sistema operativo de una computadora. • Una GUI contiene diferentes elementos gráficos tales como: botones, campos de texto, menús, gráficos, etc. • MatLab nos permite realizar GUIs de una manera muy sencilla usando GUIDE (Graphical User Interface Development Enviroment). • GUIDE es un entorno de programación visual disponible en MatLab para realizar y ejecutar programas que necesiten ingreso continuo de datos. Tiene las características básicas de todos los programas visuales como Visual Basic o Visual C++.
  • 4. CARACTERÍSTICAS GENERALES DE UNA GUI EN MATLAB • Una de las tantas herramientas con la que cuenta MatLab, es la creación de GUIs, que son muy útiles para presentar un desarrollo final y adhieren usabilidad al ajuste de parámetros y visualización de un programa • La forma de implementar las GUI con MatLab es crear los objetos y definir las acciones que cada uno va a realizar. Al usar GUIDE obtendremos dos archivos:  Un archivo .FIG: Contiene la descripción de los componentes que contiene la interfaz.  Un archivo .M: Contiene las funciones y los controles del GUI así como el callback. • Un callback se define como la acción que llevará a cabo un objeto de la GUI cuando el usuario lo active. Por ejemplo, suponga que en una ventana existe un botón el cual al presionarlo ejecutará una serie de acciones, a eso se le conoce como la función del callback.
  • 6. VENTANA DE INICIO DE GUI OPCIONES: 6 Blank GUI (Default) La opción de interfaz gráfica de usuario en blanco (viene predeterminada), nos presenta un formulario nuevo, en el cual podemos diseñar nuestro programa. GUI with Uicontrols Esta opción presenta un ejemplo en el cual se calcula la masa, dada la densidad y el volumen, en alguno de los dos sistemas de unidades. Podemos ejecutar este ejemplo y obtener resultados. GUI with Axes and Menu Esta opción es otro ejemplo el cual contiene el menú File con las opciones Open, Print y Close. En el formulario tiene un Popup menu, un push button y un objeto Axes, podemos ejecutar el programa eligiendo alguna de las seis opciones que se encuentran en el menú despegable y haciendo clic en el botón de comando. Modal Question Dialog Con esta opción se muestra en la pantalla un cuadro de diálogo común, el cual consta de una pequeña imagen, una etiqueta y dos botones Yes y No, dependiendo del botón que se presione, el GUI retorna el texto seleccionado (la cadena de caracteres ‘Yes’ o ‘No’).
  • 7. INTERFAZ GRÁFICA DE USUARIO EN BLANCO ÁREA DE DISEÑO PALETA DE COMPONENTES BARRA DE MENÚS BARRA DE HERRAMIENTAS
  • 8. INTERFAZ GRÁFICA DE USUARIO BARRA DE HERRAMIENTAS:
  • 9. INTERFAZ GRÁFICA DE USUARIO 9 • Para obtener la etiqueta de cada elemento de la paleta de componentes ejecutamos: File Preferences y seleccionamos Show names in component palette.
  • 10. INTERFAZ GRÁFICA DE USUARIO • La siguiente tabla muestra una descripción de los componentes de la paleta de componentes:
  • 11. PROPIEDADES DE LOS COMPONENTES DE UNA GUI • Cada uno de los elementos de GUI, tiene un conjunto de opciones que podemos acceder con clic derecho.
  • 12. INSPECTOR DE PROPIEDADES 12 • La opción Property Inspector nos permite personalizar cada elemento. • Cuando se le da doble clic a un control, muestra una ventana listando todas las propiedades de ese control (fuente, posición, tamaño, etc.). • Tag: es el nombre del control en el código, es mejor renombrarlo por algo identificable. • String: es el texto que aparece en el control. • ForegroundColor: color del texto. • BackgroundColor: color del control.
  • 13. VIEW CALLBACKS • Al hacer clic derecho en el elemento ubicado en el área de diseño, una de las opciones más importantes es View Callbacks, la cual, al ejecutarla, abre el archivo .m asociado al diseño y nos posiciona en la parte del programa que corresponde a la subrutina que se ejecutará cuando se realice una determinada acción sobre el elemento que se está editando. % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)  Se pueden borrar los comentarios.
  • 14. CARACTERÍSTICAS GENERALES DE UNA GUI EN MATLAB •Una aplicación GUIDE consta de dos archivos: .m y .fig. El archivo .m es el que contiene el código con las correspondencias de los botones de control de la interfaz y el archivo .fig contiene los elementos gráficos. •Cada vez que se adicione un nuevo elemento en la interfaz gráfica, se genera automáticamente código en el archivo .m. •Para ejecutar una interfaz gráfica, si la hemos etiquetado con el nombre interfaz.fig, tenemos 3 opciones: Ejecutando en la ventana de comandos: >>interfaz. Haciendo clic derecho en el m-file y seleccionando la opción RUN. Presionando la flecha verde en la parte superior del editor GUI se grabará el trabajo actual y correrá el programa (La primera vez que se lo corra preguntará el nombre del programa), 14
  • 15. CARACTERÍSTICAS GENERALES DE UNA GUI EN MATLAB 15 Entonces, ahora ya tenemos un archivo (interfaz.fig) y otro archivo (interfaz.m)
  • 16. SENTENCIA GUIDATA • guidata es la función que guarda las variables y propiedades de los elementos en la estructura de datos de la aplicación, por lo tanto, como regla general, en cada subrutina se debe escribir en la última línea lo siguiente: guidata(hObject,handles); • Esta sentencia nos garantiza que cualquier cambio o asignación de propiedades o variables quede almacenado. • Por ejemplo, si dentro de una subrutina o de una operación dio como resultado una variable resultado para poder utilizarla desde el programa u otra subrutina debemos salvarla de la siguiente manera:handles.resultado=resultado; guidata(hObject,handles); • La primera línea crea la variable resultado a la estructura de datos de la aplicación apuntada por handles y la segunda graba el valor.16
  • 17. SENTENCIAS GET Y SET • Cómo recuperamos el valor de una propiedad de un control? valor = get (handles.control, ‘propiedad’) • La asignación u obtención de valores de los componentes se realiza mediante las sentencias get y set. Por ejemplo si queremos que la variable salida tenga el valor del slider1 escribimos: salida= get(handles.slider1,'Value'); • Los datos siempre se obtienen a través de los identificadores handles. • Cómo asignamos valor a las propiedades de los controles? set (handles.control, ‘propiedad’, valor) handles es una estructura que, por medio de un puntero, asigna el valor de la propiedad al control. • Para asignar el valor de la variable salida al statictext etiquetada como text1escribimos: set(handles.text1,'String',salida); %Escribe el valor del Slider1 %en static-text Cuando se modifica el código del m-file no se tiene que volver a correr la GUI (solo se ha modificado la funcionalidad).
  • 18. COMANDO UICONTROL El comando uicontrol permite definir los controles gráficos de MatLab. MATLAB permite desarrollar programas con el aspecto típico de las aplicaciones de Windows. Estudiaremos cómo crear algunos de los controles más utilizados. Para todos los controles, se utilizará la función uicontrol, que permite desarrollar dichos controles. La forma general del comando uicontrol es la siguiente: id_control = uicontrol(id_parent,'Propiedad1',valor1,... 'Propiedad2',valor2, (otras propiedades),'callback','sentencias')
  • 19. COMANDO UICONTROL El comando uicontrol permite definir los controles gráficos de MATLAB descritos en los siguientes apartados. Estos controles reciben las acciones de los usuarios, que se denominan eventos (por ejemplo, clicar en un botón, cambiar el valor de una barra de desplazamiento, ...). A continuación se explican algunas de las propiedades de uicontrol.
  • 20. OPCIONES DEL COMANDO UICONTROL • El comando uicontrol permite definir los controles gráficos de MatLab. 20 COLOR DEL OBJETO (BACKGROUNDCOLOR) Controla el color del objeto. Por defecto éste suele ser gris claro, aunque puede tomar distintos valores: green, red, white, etc. Éstos irán definidos entre comillas (por ejemplo 'green') ACCIÓN A EFECTUAR POR EL COMANDO (CALLBACK) Este comando especifica la acción a efectuar por MATLAB al actuar sobre el control. Se trata de una expresión u orden, almacenada en una cadena de caracteres, que se ejecutará al activar el control. Esta instrucción es equivalente a realizar eval(‘expresión’) CONTROL ACTIVADO/DESACTIVADO (ENABLE) Este comando permite desactivar un control, de tal forma que una acción sobre el mismo (por ejemplo, apretar sobre el mismo con el ratón) no produce ningún efecto. Los valores que puede tomar esta variable son on u off ALINEAMIENTO HORIZONTAL DEL TITULO (HORIZONTALALIGNMENT) Esta opción determina la posición del título del control en el mismo. Los valores que puede tomar son: left, center o right
  • 21. OPCIONES DEL COMANDO UICONTROL 21 VALOR MÁXIMO (MAX) Esta opción determina el máximo valor que puede tomar un valor cuando se utilizan cajas de textos o botones de opción. En caso de botones tipo on/off, que solamente admiten las dos posiciones de abierto y cerrado, esta variable corresponde al valor del mismo cuando está activado VALOR MÍNIMO (MIN) Análogo a la opción anterior para el valor mínimo CONTROL DEL OBJETO PADRE (PARENT) Esta opción especifica el id del objeto padre. Debe ir siempre en primer lugar POSICIÓN DEL OBJETO (POSITION) En esta opción se determina la posición y el tamaño del control dentro del objeto padre. Para ello se define un vector de cuatro elementos, cuyos valores siguen el siguiente orden: [izquierda, abajo, longitud, altura]. Aquí izquierda y abajo son la distancia a la esquina inferior izquierda de la figura y longitud y altura las dimensiones del control VISIBLE (VISIBLE) Puede tomar dos valores: on/off. Indica si el control es visible en la ventana o no. Este comando es similar al Enable, si bien éste además de quedar inhabilitado el control éste desaparece de la pantalla
  • 22. OPCIONES DEL COMANDO UICONTROL 22 NOMBRE DEL OBJETO (STRING) Esta opción define el nombre que aparecerá en el control. Cuando el control sea una opción de menú desplegable (popup menu), los nombres se sitúan en orden dentro del string, separados por un carácter barra vertical (|) TIPO DE CONTROL (STYLE) Esta opción puede tomar los siguientes valores: pushbutton, radiobutton, checkbox, slider, edit, popupmenu y text, según el tipo de control que se desee (pueden usarse nombres abreviados: así, pushbutton puede abreviarse en push) UNIDADES (UNITS) Unidades de medida en las que se interpretará el comando Position. Los valores que puede tomar Units son: pixels (puntos de pantalla), normalized (coordenadas de 0 a 1), inches (pulgadas), cent (centímetros), points (equivalente a 1/72 parte de una pulgada). La opción por defecto es pixels VALOR (VALUE) Permite utilizar el valor que tiene del control en un momento dado. Por ejemplo, un botón de chequeo (check button) puede tener dos tipos de valores, definidos por las variables Max y Min.
  • 23. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO 23 • Los controles son objetos que se ubican dentro de GUI y permiten mostrar, aceptar o validar datos. • Éstos componentes son los uicontrol de MatLab y es por lo tanto programable en sus diferentes propiedades. PUSH BUTTON El control push button genera una acción cuando el usuario hace un clic sobre él (por ejemplo, un botón OK puede cerrar una caja de diálogo). Programando el Callback: cuando el usuario pulsa el botón pushbutton, su callback se ejecuta y no devuelve un valor ni mantiene un estado. function pushbutton1_Callback(hObject, eventdata, handles) x=linspace(0,2*pi,200); y=sin(x); z=cos(x); plot(x,y, '--',x,z,'*') grid on; axis([0 2*pi -1.5 1.5]); % ejes xlabel('ejex') ylabel('ejey') legend('seno','itcoseno') % it=cursiva; title('FUNCIONES SENO Y COSENO');
  • 24. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO TOGGLE BUTTON Los toggles buttons generan una acción e indican un estado binario (por ejemplo, on u off). Cuando se pulsa el botón toggle button aparece oprimido y permanece así aún cuando se suelta el botón del mouse, al tiempo que el callback ejecuta las órdenes programadas dentro de él. Los subsecuentes clic del mouse retorna el toggle button al estado de nondepressed y es posible de nuevo ejecutar su callback. Programando el Callback: la rutina del callback necesita preguntar a toggle button para determinar en qué estado esta MatLab y pone el valor igual a Max de la propiedad cuando el toggle button está oprimido (Max tiene por defecto 1) e igual a Min cuando el toggle button no está oprimido (Min tiene por defecto 0).
  • 25. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO RADIO BUTTON Este control se utiliza para seleccionar una opción de un grupo de opciones (es decir, sólo un botón está en estado seleccionado), para activar un radiobutton, pulse el botón del mouse en el objeto. Los radiobutton tienen dos estados: seleccionado y no seleccionado, al cual se accede a través de su propiedad value. value = Max, el botón se selecciona. value = Min, el botón no se selecciona. Programando el Callback: los radio buttons son mutuamente exclusivos dentro de un grupo de opciones, los callback para cada radiobutton se deben poner en la propiedad value igual a 0 en todos los otros radiobuttons del grupo. MatLab pone la propiedad de value a 1 en el radio button pulsado por el usuario.
  • 26. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO RADIO BUTTON function radiobutton1_Callback(hObject, eventdata, handles) set(handles.radiobutton2,'value',0) opcion1 = get(handles.radiobutton1,'value'); if opcion1==1 x=linspace(-2,3,3000); %Generamos una tabla de valores en el dominio x y=(x.^2).*(x<0)+1.*((0<=x)&(x<1))+(-x+2).*(1<=x); %Definimos la función plot(x,y,'.'); grid on; title('Función definida a trozos') end function radiobutton2_Callback(hObject, eventdata, handles) set(handles.radiobutton1,'value',0) opcion2 = get(handles.radiobutton2,'value'); if opcion2==1 [x,y]=meshgrid(-7.5:0.5:7.5); %Generamos la malla [x,y] z=sin(sqrt(x.^2+y.^2))./(sqrt(x.^2+y.^2)); surfl(x,y,z) %Dibujamos en 3D title('Z=sin(sqrt(X^2+Y^2))/(sqrt(X^2+Y^2))'); xlabel('x'); ylabel('y'); zlabel('z'); end
  • 27. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO CHECK BOX Los checkboxes se utilizan para proporcionar al usuario varias opciones de las que se puede elegir una o más de una cuando se ha pulsado el botón sobre él, e indica su estado como verificado o no verificado. La propiedad value indica el estado del checkbox asumiendo el valor del Max igual a 1 y del Min igual a 0. Value = Max, la caja se verifica. Value = Min, la caja no se verifica. Programando el Callback: se puede determinar el estado actual de un checkbox desde su callback preguntando el estado de su propiedad en value. function checkbox1_Callback(hObject, eventdata, handles) if (get(hObject,'value')==get(h,'Max')) disp('El checkbox ha sido seleccionado'); %CHECKBOX seleccionado else disp('El checkbox no ha sido seleccionado'); %CHECKBOX no seleccionado end
  • 28. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO EDIT TEXT Los controles Edit Text son campos que les permiten a los usuarios ingresar o modificar cadenas de texto. Cuando se quiera ingresar un texto, la propiedad string contiene el texto ingresado por el usuario. Programando el Callback: para obtener la cadena de texto tecleada por el usuario se consigue de la propiedad string en el callback. MatLab devuelve el valor de la propiedad string del edit text como una cadena de caracteres. Si se desea que el usuario ingrese valores numéricos, se debe convertir los caracteres a números, usando el comando str2double el cual convierte la cadena a un tipo double. Si el usuario ingresa caracteres no numéricos, str2double le devolverá NaN. function edit1_Callback(hObject, eventdata, handles) usuario_string = get(handles.edit1,'string') %devuelve la cadena de texto ingresada %por el usuario en el edit text
  • 29. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SLIDER Los deslizadores o barras de desplazamiento permiten explorar fácilmente una larga lista de elementos o una gran cantidad de información, y acepta la entrada numérica dentro de un rango específico, permitiéndole al usuario mover una barra corrediza. El desplazamiento de la barra se efectúa presionando el botón del mouse y arrastrando la barra, o pulsando el botón que posee una flecha. La ubicación de la barra indica un valor numérico. Existen cuatro propiedades que controlan el rango y tamaño de paso del deslizador: value Contiene el valor actual del deslizador Max Define el valor máximo del deslizador, el valor por defecto es 1 Min Define el valor mínimo del deslizador, el valor por defecto es 0 SliderStep Especifica el tamaño de un paso del deslizador con respecto al rango, el valor por defecto es [0,01 0,10], proporciona un 1% de cambio para los clics en las flechas y un 10% de cambio para los clics en la barra function slider1_Callback(hObject, eventdata, handles) slider_valor = get(handles.slider1,'value')
  • 30. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO STATIC TEXT Los controles Static Text se utilizan para mostrar texto que el usuario no puede modificar. El texto estático se usa frecuentemente para etiquetar otros mandos y proporciona las direcciones al usuario, o indica valores asociados con un deslizador (Slider). Los usuarios no pueden cambiar interactivamente el texto de allí que en el texto estático no hay ninguna manera de invocar la rutina de un callback asociada a él. Static text, no posee función asociada, pero sí una dirección asociada, que la podemos utilizar para escribir los resultados. Para saber cuál es esta dirección, haciendo doble-clic en este componente, la ubicamos en la etiqueta Tag.
  • 31. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO LIST BOX Los List Boxes muestran una lista de ítems entre los cuales el usuario puede seleccionar uno o más ítems. La propiedad string contiene la lista de cadenas desplegadas en el listbox. El primer ítem en la lista tiene el índice 1. La propiedad value contiene el índice en la lista de cadenas que corresponde al ítem seleccionado. Si el usuario selecciona múltiples ítems, entonces el value es un vector de índices. La propiedad List box Top es un índice en la serie de cadenas defenidas por la propiedad string y debe tener un valor entre 1 y el número de cadenas. function listbox1_Callback(hObject, eventdata, handles) indice = get(handles.listbox1,'value')
  • 32. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO LIST BOX Simple o Múltiple selección: Los valores de las propiedades Min y Max determinan si los usuarios pueden hacer simples o múltiples selecciones:  Si Max-Min>1, entonces las cajas de la lista permiten la selección del ítem múltiple.  Si Max-Min<1, entonces las cajas de la lista no permiten la selección del ítem múltiple. Programando el Callback: MatLab evalúa el callback del listbox después de que el botón del mouse se suelta o un evento del keypress se ha efectuado, eso cambia la propiedad de value (es decir, cuando quiera el usuario pulsa el botón en un ítem, pero no al pulsar el scrollbar en el list box). Esto significa que el callback se ejecuta después del primer clic de un doble-clic en un solo ítem o cuando el usuario está haciendo las selecciones múltiples, en estas situaciones se deberá agregar otro componente, como Done button (push button) y programar su rutina del callback para preguntar el valor de la propiedad list box.
  • 33. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO POPUP MENU Los Popup menús permiten visualizar una lista de opciones cuando los usuarios presionan la flecha. La propiedad string contiene la lista de cadenas visualizadas en el popup menu. La propiedad value contiene el índice del ítem seleccionado de la lista de cadenas, el primer ítem en la lista tiene el índice 1. Cuando no abre, un popup menu visualiza la opción actual que es determinado por el índice contenido en la propiedad value. Los popup menús son útiles cuando se quiere proporcionar varias opciones mutuamente exclusivas a los usuarios, y no usar una mayor cantidad de espacio que una serie de radio buttons requeriría. Programando el Callback: se puede programar el popup menu para trabajar verificando sólo el índice del ítem seleccionado (contenido en la propiedad value) o se puede obtener la actual cadena contenida en el ítem seleccionado.
  • 34. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO POPUP MENU function popupmenu1_Callback(hObject, eventdata, handles) opcion = get(handles.popupmenu1,'value') switch opcion case 1 disp('Se ha seleccionado la opción 1'); case 2 disp('Se ha seleccionado la opción 2'); otherwise disp('Se ha seleccionado la opción 3'); end Activando o desactivando controles: • Se puede saber si un control responde al botón del mouse usando la propiedad enable (habilitado). Los controles tienen tres estados:  on: el control está operativo  off: el control está inactivo  inactivo: el mando es inválido, pero su etiqueta no se graba fuera. Cuando un mando es inválido, mientras se pulsa el botón izquierdo del mouse no se ejecuta su rutina del callback.
  • 35. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO 35 AXES Los ejes (axes) permiten visualizar los gráficos, como todos los objetos de los gráficos, los ejes tienen las propiedades para controlar su apariencia. Programando el Callback: los ejes no son objetos uicontrol, pero pueden programarse para ejecutar un callback cuando los usuarios pulsen el botón del mouse en los ejes. Use la propiedad ButtonDownFcn de los ejes para definir el callback. Axes es la función de bajo nivel para la creación de gráficos. MatLab crea automáticamente un eje, si no existe ya, cuando se emite un comando que crea un gráfico. Si una GUI tiene múltiples ejes, se debe especificar qué ejes se desea permanezcan en blanco explícitamente cuando se emite las órdenes de plot. axes(handles.axes1) Se construyen los ejes cuya propiedad Tag son axes1 los ejes actuales, y por consiguiente el blanco por trazar las órdenes, se puede cambiar los ejes actuales todas las veces que se quiera al blanco de unos ejes diferentes.
  • 36. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO PANEL Se puede hacer una GUI fácil de entender visualmente agrupando varios controles relacionados. Un panel puede contener los paneles y grupos de botones, así como ejes y los controles de interfaz de usuario tales como: botones, barras de desplazamiento, menús pop-up, etc. La posición de cada componente dentro de un panel se interpreta en relación a la esquina inferior izquierda del panel. En general, si la GUI cambia de tamaño, el panel y sus componentes también cambian de tamaño. Sin embargo, se puede controlar el tamaño y la posición del panel y sus componentes. Se puede hacer esto mediante el establecimiento de la propiedad cambiar el tamaño de la GUI y proporcionar ResizeFcn callback para el panel. BUTTON GROUP Los grupos de botones son como los paneles, excepto que manejan una selección exclusiva de botones de opción y botones de selección. Si un grupo de botones contiene un conjunto de botones de opción, botones de selección, o ambas cosas, el grupo de botones permite que sólo uno de ellos pueda ser seleccionado. Cuando un usuario hace clic en un botón, el botón está seleccionado y todos los demás botones dejan de estarlo. En la programación de un grupo de botones, se usa SelectionChangeFcn callback para gestionar las respuestas a las selecciones.
  • 37. EJEMPLO: CREAR UN PROGRAMA QUE CALCULE EL FACTORIAL DE CUALQUIER NUMERO • Para este ejercicio ingresamos a la interfaz gráfica mediante el comando “guide”, y utilizaremos los comando o botones de: “push bottom”, “static text” y “edit text”. Mediante las propiedades de cada botón construiremos nuestro programa ingresando las variables y operaciones adecuadas para el correcto funcionamiento del programa. • Como arreglo adicional para una interfaz amigable a la vista se agrego una imagen de fondo con el comando “axes”
  • 38. BIBLIOGRAFÍA: • Desmond J. Higham, Nicolas J. Higham. (2000). Mathlab guide. México: Siam. • Marc E. Herniter. (2001). Programing in Matlab. España: Thomson learning. • https://es.mathworks.com/discovery/matlab-gui.htmlENLACE SLIDESHARE DE INVESTIGACIÓN: Revisar en EVA