SlideShare una empresa de Scribd logo
1 de 58
SOFTWARE DE SIMULACIÓN
MATLAB
Byron Carrión
547
INTERFAZ GRÁFICA DE USUARIO
EN MATLAB
2
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++.
3
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.
4
INICIANDO GUIDE
 Para crear una GUI en MatLab usamos GUIDE, lo
podemos hacer de tres formas:
 Ejecutando el comando guide en la ventana de
comandos:
>> guide
 Haciendo un clic en el ícono GUIDE que muestra
la figura:
 Ejecutando del menú principal: File – New
GUI
5
GUIDE
VENTANA DE INICIO DE GUI
6
VENTANA DE INICIO DE GUI
OPCIONES:
7
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
8
ÁREA DE DISEÑO
PALETA DE
COMPONENTES
BARRA DE MENÚS
BARRA DE
HERRAMIENTAS
INTERFAZ GRÁFICA DE USUARIO
9
BARRA DE HERRAMIENTAS:
INTERFAZ GRÁFICA DE USUARIO
10
• 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
11
• La siguiente tabla muestra una descripción de los
componentes de la paleta de componentes:
PROPIEDADES DE LOS COMPONENTES DE UNA
GUI
12
• Cada uno de los elementos de GUI, tiene un conjunto de
opciones que podemos acceder con clic derecho.
INSPECTOR DE PROPIEDADES
13
• 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
14
• 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),
15
CARACTERÍSTICAS GENERALES
DE UNA GUI EN MATLAB
16
Entonces, ahora ya tenemos un archivo (interfaz.fig) y otro archivo
(interfaz.m)
SENTENCIA HANDLES
• Todos los valores de las propiedades de los elementos
(color, valor, posición, string, etc.) y los valores de las
variables transitorias del programa se almacenan en
una estructura, los cuales son accedidos mediante un
único y mismo identificador para todos éstos. El
identificador se asigna en:
% Choose default command line output for interfaz
handles.output = hObject;
• Cada uno de los objetos de MatLab tiene un
identificador único (handles), a los cuales se les
llamará handles o id.
• handles, es el identificador a los datos de la
aplicación. Esta definición de identificador es salvada
con la siguiente instrucción:
% Update handles structure
guidata(hObject, handles);
• guidata, es la sentencia para salvar los datos de la
aplicación. 17
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.18
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).
19
ESTRUCTURA DE LOS GRÁFICOS DE MATLAB
• Los gráficos de MatLab tienen una estructura
jerárquica formada por objetos de distintos tipos.
• Esta jerarquía tiene forma de árbol.
20
ESTRUCTURA DE LOS GRÁFICOS DE MATLAB
• Según se muestra en la figura anterior, el objeto más general
es la pantalla (screen). Este objeto es la raíz de todos los
demás y sólo puede haber un objeto pantalla. Una pantalla
puede contener una o más ventanas (figures). A su vez cada
una de las ventanas puede tener uno o más ejes de
coordenadas (axes) en los que representar otros objetos de
más bajo nivel. Una ventana puede tener también controles
(uicontrol) tales como botones, barras de
desplazamiento, botones de selección o de opción, etc.) y
menús (uimenu). Finalmente, los ejes pueden contener los
cinco tipos de elementos gráficos que permite MATLAB:
líneas (line), polígonos (patches), superficies
(surface), imágenes bitmap (image) y texto (text).
• La jerarquía de objetos mostrada indica que en MatLab hay
objetos padres e hijos. Por ejemplo, todos los objetos
ventana son hijos de pantalla, y cada ventana es padre de
los objetos ejes, controles o menús que están por debajo. A
su vez los elementos gráficos (líneas, polígonos, etc.) son hijos
de un objeto ejes, y no tienen otros objetos que sean sus
hijos.
• Cuando se borra un objeto de MatLab automáticamente se
borran todos los objetos que son sus descendientes. Por
ejemplo, al borrar unos ejes, se borran todas las líneas y
polígonos que son hijos suyos. 21
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')
22
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.
23
OPCIONES DEL COMANDO UICONTROL
• El comando uicontrol permite definir los controles
gráficos de MatLab.
24
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
25
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
OPCIONES DEL COMANDO UICONTROL
26
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. Según sea uno
COMANDO UICONTROL
MATLAB puede tener varias ventanas abiertas, pero siempre hay
una y sólo una que es la ventana activa. A su vez una ventana
puede tener varios ejes (axes), pero sólo unos son los ejes activos.
MATLAB dibuja en los ejes activos de la ventana activa. Los
identificadores de la ventana activa, de los ejes activos y del objeto
activo se pueden obtener respectivamente con los comandos
gcf (get current figure), gca (get current axes) y gco (get current
object):
gcf devuelve un entero, que es el handle de la ventana activa
gca devuelve el handle de los ejes activos
gco devuelve el handle del objeto activo
Los objetos se pueden borrar con el comando delete:
delete(handle) borra el objeto correspondiente y todos sus hijos
27
COMANDO UICONTROL
CHECK BOXES
Los botones de selección permiten al usuario seleccionar
entre dos
opciones. Los botones de selección actúan como
interruptores, indicando un estado on (si el botón está
activado) u off
(si el botón está desactivado). El valor de ambos estados
viene definido por las opciones Max y Min,
respectivamente. Los botones de selección deben ser
independientes unos de otros.
Ejemplo: El siguiente conjunto de instrucciones crea una
caja con una opción, que permite visualizar ejes de una
figura dentro de una función plot:
28
COMANDO UICONTROL
% Definir un texto fijo como título para los botones de selección
txt_axes = uicontrol(gcf,...
'Style','text',...
'Units','normalized','Position',[0.4 0.55 0.25 0.1],...
'String','Seleccione la opcion');
% Definir la checkbox para la propiedad Box de los ejes
cb_box = uicontrol(gcf,...
'Style','checkbox',...
'Units','normalized','Position',[0.4 0.475 0.25 0.1],...
'String','Box=on',...
'CallBack',['set(gca,''Box'',''off''),',...
'if get(cb_box,''value'')==1,',...
'set(gca,''Visible'',''on''),',...
'set(gca,''Box'',''on''),',...
'else,',...
'set(gca,''Visible'',''off''),',...
'end']);
29
COMANDO UICONTROL
30
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
COMANDO UICONTROL
BARRAS DE DESPLAZAMIENTO (SCROLLING BARS
O SLIDERS)
Las barras de desplazamiento permiten al
usuario introducir un valor entre un rango de
valores. El usuario puede cambiar el valor
clicando sobre la barra, clicando en las flechas
laterales o bien arrastrando el elemento central
con el ratón.
Ejemplo: El siguiente ejemplo muestra como se
utilizan las barras de desplazamiento para
mover un sistema de referencia espacial:
31
COMANDO UICONTROL
% Obtener un id de la ventana activa y borrar su contenido
fig = gcf; clf
% Los callbacks definen la propiedad View de los ejes
% a partir de os valores de las barras de desplaz. (Value property)
% y escriben sus valores en los controles text
%
% Definir la barra para el ángulo de azimut
sli_azm = uicontrol(fig,'Style','slider','Position',[50 50 120 20],...
'Min',-90,'Max',90,'Value',30,...
'CallBack',[...
'set(azm_cur,''String'','...
'num2str(get(sli_azm,''Val''))),',...
'set(gca,''View'',',...
'[get(sli_azm,''Val''),get(sli_elv,''Val'')])']);
% Definir la barra para el ángulo de elevación
sli_elv = uicontrol(fig,...
'Style','slider',...
'Position',[240 50 120 20],...
'Min',-90,'Max',90,'Value',30,...
'CallBack',[...
'set(elv_cur,''String'',',...
'num2str(get(sli_elv,''Val''))),',...
'set(gca,''View'',',...
'[get(sli_azm,''Val''),get(sli_elv,''Val'')])']);
% Definir los controles de texto para los valores mínimos
32
COMANDO UICONTROL
azm_min = uicontrol(fig,...
'Style','text',...
'Pos',[20 50 30 20],...
'String',num2str(get(sli_azm,'Min')));
elv_min = uicontrol(fig,...
'Style','text',...
'Pos',[210 50 30 20],...
'String',num2str(get(sli_elv,'Min')));
% Definir los controles de texto para los valores máximos
azm_max = uicontrol(fig,...
'Style','text',...
'Pos',[170 50 30 20],...
'String',num2str(get(sli_azm,'Max')),...
'Horiz','right');
elv_max = uicontrol(fig,...
'Style','text',...
'Pos',[360 50 30 20],...
'String',num2str(get(sli_elv,'Max')),...
'Horiz','right');
% Definir las etiquetas de las barras
azm_label = uicontrol(fig,...
'Style','text',...
'Pos',[50 80 65 20],...
'String','Azimuth');
elv_label = uicontrol(fig,...
'Style','text',...
'Pos',[240 80 65 20],...
'String','Elevación');
33
COMANDO UICONTROL
% Definir los controles de texto para los valores
actuales
% Los valores son inicializados aquí y son
modificados por los callbacks
% de las barras cuando el usuario cambia sus
valores
azm_cur = uicontrol(fig,...
'Style','text',...
'Pos',[120 80 50 20],...
'String',num2str(get(sli_azm,'Value')));
elv_cur = uicontrol(fig,...
'Style','text',...
'Pos',[310 80 50 20],...
'String',num2str(get(sli_elv,'Value')));
34
COMANDO UICONTROL
35
1. La siguiente instrucción dibujará en la pantalla del gráfico un PUSH BUTTON, que
tiene como nombre Start Plot. Al pulsarlo se ejecutarán las instrucciones
contenidas en el fichero mifunc.m:
pbstart = uicontrol(gcf, 'Style', 'push', 'Position',[10 10 100 25], 'String', 'Start Plot', 'CallBack', 'mifunc');
donde es necesario crear un fichero llamado mifunc.m, que será ejecutado al
pulsar sobre el botón. En lugar de este fichero también puede ponerse una
cadena de caracteres conteniendo distintos comandos, que será evaluada como
si se tratase de un fichero *.m.
% fichero .m
[x,y]=meshgrid(-1:.1:1); n=20;
for j = 1:n
t=(2*pi/19)*(j-1);
z=2*sin(t)*exp(-x.^2-y.^2);
surf(x,y,z),axis([-1 1 -1 1 -2 2])
F(j) = getframe;
end
movie(F,6)
La siguiente instrucción dibujará en la pantalla del gráfico una caja de selección
(POP-UP MENUS) desplegable que permite elegir una opción entre varias mostradas en
una lista. Eligiendo una de las opciones, MatLab realizará la opción elegida. El menú
se despliega pulsando sobre la flecha de la derecha. La opción sobre la que pase el
ratón aparecerá de otro color.
%Definir el menú pop-up
popcol = uicontrol(gcf, 'Style', 'popup', 'String', 'red|blue|green|yellow', 'Position',[400 50 120 20],
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
36
• 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
SOFTWARE DE SIMULACIÓN - BPDP 37
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).
function togglebutton1_Callback(hObject, eventdata, handles)
boton_estado = get(handles.togglebutton1,'value')
if boton_estado==get(handles.togglebutton1,'Max') %TOGGLE BUTTON se
disp('Él botón se encuentra presionado') %encuentra presionado
elseif boton_estado==get(handles.togglebutton1,'Min') %TOOGLE BUTTON no se
disp('Él botón no se encuentra presionado') %encuentra presionado
end
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
SOFTWARE DE SIMULACIÓN - BPDP 38
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
SOFTWARE DE SIMULACIÓN - BPDP 39
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
SOFTWARE DE SIMULACIÓN - BPDP 40
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
SOFTWARE DE SIMULACIÓN - BPDP 41
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
function edit2_Callback(hObject, eventdata, handles)
valor_entrada = str2double(get(handles.edit2,'string')) %convierte el string en double
if isnan(valor_entrada) %verifica si la cadena ingresada es no-numérico (isnan)
errordlg('Ingresar un valor numérico','Input') %se visualiza un diálogo de error
end
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
42
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
SOFTWARE DE SIMULACIÓN - BPDP 43
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
SOFTWARE DE SIMULACIÓN - BPDP 44
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
SOFTWARE DE SIMULACIÓN - BPDP 45
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
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
SOFTWARE DE SIMULACIÓN - BPDP 46
LIST BOX
function listbox1_Callback(hObject, eventdata, handles)
valor=get(handles.listbox1,'Value')
if(valor==1)
set(handles.text1,'String','UNO');
elseif(valor==2)
set(handles.text1,'String','DOS');
elseif(valor==3)
set(handles.text1,'String','TRES');
else
set(handles.text1,'String','CUATRO');
end
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
SOFTWARE DE SIMULACIÓN - BPDP 47
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
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
SOFTWARE DE SIMULACIÓN - BPDP 48
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
SOFTWARE DE SIMULACIÓN - BPDP 49
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
CONTROLES DE LA INTERFAZ GRÁFICA DE
USUARIO
SOFTWARE DE SIMULACIÓN - BPDP 50
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
ELABORACIÓN DE UNA INTERFAZ
GRÁFICA
1. Creación de formularios.
Abrir el editor de formularios,
digitando la orden guide en la
ventana de comandos, el cual
desplega el formulario en modo
de reja, en la cual se agragarán
los controles que se seleccionen
de la paleta.
>>guide
Se debe especificar el tamaño de
la GUI a un valor exacto,
efectuando un clic en la opción
View del menú de herramientas y
seleccionando luego la opción
Property Inspector del menú y
definir en la propiedad Position los
valores que deberá tener el
formulario.
51
ELABORACIÓN DE UNA INTERFAZ
GRÁFICA
2. Adición de componentes.
Seleccione los componentes de la paleta para
agregar y arrástrelos al área del esquema.
SOFTWARE DE SIMULACIÓN - BPDP 52
ELABORACIÓN DE UNA INTERFAZ
GRÁFICA
3. Alineación de objetos.
Para alinear los controles entre si, dé un clic en la
opción Align Objects del menú Tools. La herramienta
de alineación muestra los objetos seleccionados y se
prepara para ser alineado según las condiciones
seleccionadas.
SOFTWARE DE SIMULACIÓN - BPDP 53
ELABORACIÓN DE UNA INTERFAZ
GRÁFICA
4. Fijar propiedades para cada control.
Para poner las propiedades de cada control, dé un
clic en la opción View y seleccione luego la opción
Property Inspector, y defina los valores.
SOFTWARE DE SIMULACIÓN - BPDP 54
ELABORACIÓN DE UNA INTERFAZ
GRÁFICA
5. Activación de la Interfaz Gráfica de Usuario (GUI).
Active la GUI seleccionando Run del menú Tools o
use la flecha de color verde del toolbar de guide.
SOFTWARE DE SIMULACIÓN - BPDP 55
ELABORACIÓN DE UNA INTERFAZ
GRÁFICA
6. Programación de la Interfaz Gráfica de Usuario (GUI).
Cuando se graba primero o activa una GUI, guide genera el
archivo .m de la aplicación que contendrá todo el código para
ejecutar y controlar la GUI. Se debe escribir dentro del callback de
las funciones, las órdenes que se ejecutarán cuando los usuarios
activen un control en la GUI. Guide genera este archivo .m, con
las subfunciones vacías para cada componente que tiene un
callback asociado con él.
SOFTWARE DE SIMULACIÓN - BPDP 56
% --- Executes on button press in surf.
function surf_Callback(hObject, eventdata, handles)
% hObject handle to surf (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
ELABORACIÓN DE UNA INTERFAZ
GRÁFICA6. Programación de la Interfaz Gráfica de Usuario (GUI).
SOFTWARE DE SIMULACIÓN - BPDP 57
function surf_Callback(hObject, eventdata, handles)
[x,y]=meshgrid(-5:.4:5);
z=(x.^2).*exp(-y.^2);
surf(z);
function mesh_Callback(hObject, eventdata, handles)
[x,y]=meshgrid(-8:.4:8,-3:0.3:5);
z=x.^2+y.^2;
mesh(z);
function contour_Callback(hObject, eventdata, handles)
[x,y]=meshgrid(-8:.4:8,-3:0.3:5);
z=(sin(x)./(y+9));
contour(x,y,z);
function menu_Callback(hObject, eventdata, handles)
opcion=get(handles.menu,'value');
switch opcion
case 1 %usuario seleccionó la primera opción
x=-8:0.2:8;
y=x.*sin(x);
plot(x,y)
grid on
xlabel('Eje X')
ylabel('Eje Y')
case 2 %usuario seleccionó la segunda opción
x=-8:0.2:8;
y=sin(x);
bar(x,y)
grid on
case 3 %usuario seleccionó la tercera opción
x=-5.5:0.2:5.5;
y=x.*sin(x);
polar(x,y)
grid on
end
ACCEDIENDO A LOS IDENTIFICADORES
• Cada identificador de un objeto se guarda en un
campo denominado estructuras de los identificadores,
teniendo el mismo nombre como el Tag del objeto.
SOFTWARE DE SIMULACIÓN - BPDP 58
Por ejemplo:
handles.surf, contiene el identificador del pushbutton 1
handles.mesh, contiene el identificador del pushbutton 2
handles.contour, contiene el identificador del pushbutton 3
handles.menu, contiene el identificador del popupmenu
id1=handles.surf
id2=handles.mesh
id3=handles.cont
our
id4=handles.men
u

Más contenido relacionado

La actualidad más candente

Tipos de roscas y sus parámetros principales
Tipos de roscas y sus  parámetros principalesTipos de roscas y sus  parámetros principales
Tipos de roscas y sus parámetros principalesLUISLADINO
 
Utilizacion del pie de metro y micrometro
Utilizacion del pie de metro y micrometroUtilizacion del pie de metro y micrometro
Utilizacion del pie de metro y micrometroMargarita Nilo
 
Vibraciones unidad 1 c [autoguardado]
Vibraciones unidad 1 c [autoguardado]Vibraciones unidad 1 c [autoguardado]
Vibraciones unidad 1 c [autoguardado]Angel Villalpando
 
05 respuesta en el tiempo de un sistema de control
05   respuesta en el tiempo de un sistema de control05   respuesta en el tiempo de un sistema de control
05 respuesta en el tiempo de un sistema de controlreneej748999
 
Analisis de fourier para señales
Analisis de fourier para señalesAnalisis de fourier para señales
Analisis de fourier para señalesdoc digitus
 
Analisis cinematico de mecanismos unidad 2
Analisis cinematico de mecanismos unidad 2Analisis cinematico de mecanismos unidad 2
Analisis cinematico de mecanismos unidad 2Angel Villalpando
 
velocidad y aplicacion de fuerzas en mecanismos
velocidad y aplicacion de fuerzas en mecanismosvelocidad y aplicacion de fuerzas en mecanismos
velocidad y aplicacion de fuerzas en mecanismosluisteodorogarciaagu
 
Diseño de flechas o ejes (calculo del factor de seguridad empleado para flechas)
Diseño de flechas o ejes (calculo del factor de seguridad empleado para flechas)Diseño de flechas o ejes (calculo del factor de seguridad empleado para flechas)
Diseño de flechas o ejes (calculo del factor de seguridad empleado para flechas)Angel Villalpando
 
Ejercicios de ejes
Ejercicios de ejesEjercicios de ejes
Ejercicios de ejesphuarac
 
Simbolos transductores sensores detectores
Simbolos transductores sensores detectoresSimbolos transductores sensores detectores
Simbolos transductores sensores detectoresPedro Bortot
 
Control proporcional
Control proporcionalControl proporcional
Control proporcionalRosmery Reyes
 
Análisis cinemático mecanismo biela manivela
Análisis cinemático mecanismo biela manivelaAnálisis cinemático mecanismo biela manivela
Análisis cinemático mecanismo biela manivelaRoberto Sanz Benito
 
Sistemas automaticos de_control_1_
Sistemas automaticos de_control_1_Sistemas automaticos de_control_1_
Sistemas automaticos de_control_1_Gugui Maguna
 
Controladores (teoria de control)
Controladores (teoria de control)Controladores (teoria de control)
Controladores (teoria de control)martinezeduardo
 

La actualidad más candente (20)

CPI1- CLASE 3
CPI1- CLASE 3CPI1- CLASE 3
CPI1- CLASE 3
 
Tipos de roscas y sus parámetros principales
Tipos de roscas y sus  parámetros principalesTipos de roscas y sus  parámetros principales
Tipos de roscas y sus parámetros principales
 
Clase ejes
Clase ejesClase ejes
Clase ejes
 
Utilizacion del pie de metro y micrometro
Utilizacion del pie de metro y micrometroUtilizacion del pie de metro y micrometro
Utilizacion del pie de metro y micrometro
 
Vibraciones unidad 1 c [autoguardado]
Vibraciones unidad 1 c [autoguardado]Vibraciones unidad 1 c [autoguardado]
Vibraciones unidad 1 c [autoguardado]
 
trTransmisionporcorreaycadena
trTransmisionporcorreaycadenatrTransmisionporcorreaycadena
trTransmisionporcorreaycadena
 
05 respuesta en el tiempo de un sistema de control
05   respuesta en el tiempo de un sistema de control05   respuesta en el tiempo de un sistema de control
05 respuesta en el tiempo de un sistema de control
 
Mecanismos unidad 1
Mecanismos unidad 1Mecanismos unidad 1
Mecanismos unidad 1
 
Simbologia neuMATICA
Simbologia neuMATICASimbologia neuMATICA
Simbologia neuMATICA
 
Analisis de fourier para señales
Analisis de fourier para señalesAnalisis de fourier para señales
Analisis de fourier para señales
 
Analisis cinematico de mecanismos unidad 2
Analisis cinematico de mecanismos unidad 2Analisis cinematico de mecanismos unidad 2
Analisis cinematico de mecanismos unidad 2
 
velocidad y aplicacion de fuerzas en mecanismos
velocidad y aplicacion de fuerzas en mecanismosvelocidad y aplicacion de fuerzas en mecanismos
velocidad y aplicacion de fuerzas en mecanismos
 
Diseño de flechas o ejes (calculo del factor de seguridad empleado para flechas)
Diseño de flechas o ejes (calculo del factor de seguridad empleado para flechas)Diseño de flechas o ejes (calculo del factor de seguridad empleado para flechas)
Diseño de flechas o ejes (calculo del factor de seguridad empleado para flechas)
 
Vibraciones mecánicas
Vibraciones mecánicasVibraciones mecánicas
Vibraciones mecánicas
 
Ejercicios de ejes
Ejercicios de ejesEjercicios de ejes
Ejercicios de ejes
 
Simbolos transductores sensores detectores
Simbolos transductores sensores detectoresSimbolos transductores sensores detectores
Simbolos transductores sensores detectores
 
Control proporcional
Control proporcionalControl proporcional
Control proporcional
 
Análisis cinemático mecanismo biela manivela
Análisis cinemático mecanismo biela manivelaAnálisis cinemático mecanismo biela manivela
Análisis cinemático mecanismo biela manivela
 
Sistemas automaticos de_control_1_
Sistemas automaticos de_control_1_Sistemas automaticos de_control_1_
Sistemas automaticos de_control_1_
 
Controladores (teoria de control)
Controladores (teoria de control)Controladores (teoria de control)
Controladores (teoria de control)
 

Destacado

MATLAB - Practica 1 Junio 2010
MATLAB - Practica 1 Junio 2010MATLAB - Practica 1 Junio 2010
MATLAB - Practica 1 Junio 2010Jose Cordova
 
GUI EN MATLAB MODULACION PULSO UNICO
GUI EN MATLAB MODULACION PULSO UNICOGUI EN MATLAB MODULACION PULSO UNICO
GUI EN MATLAB MODULACION PULSO UNICOCristhian Fernandez
 
MATLAB Febrero - Practica 3
MATLAB Febrero - Practica 3MATLAB Febrero - Practica 3
MATLAB Febrero - Practica 3Jose Cordova
 
Avanse de proyecto de calculo
Avanse de proyecto de calculoAvanse de proyecto de calculo
Avanse de proyecto de calculoRoque Macias E.
 
MATLAB Febrero - Practica 2
MATLAB Febrero - Practica 2MATLAB Febrero - Practica 2
MATLAB Febrero - Practica 2Jose Cordova
 
Practica 2 - VOIP II
Practica 2 - VOIP IIPractica 2 - VOIP II
Practica 2 - VOIP IIJose Cordova
 
MATLAB Febrero - Practica 4
MATLAB Febrero - Practica 4MATLAB Febrero - Practica 4
MATLAB Febrero - Practica 4Jose Cordova
 
MATLAB Marzo - Examen
MATLAB Marzo - ExamenMATLAB Marzo - Examen
MATLAB Marzo - ExamenJose Cordova
 
UtplMadrid_Tutorías_MATLAB_IMAGENES MATLAB
UtplMadrid_Tutorías_MATLAB_IMAGENES MATLABUtplMadrid_Tutorías_MATLAB_IMAGENES MATLAB
UtplMadrid_Tutorías_MATLAB_IMAGENES MATLABdpatriciocastillom
 
MATLAB Examen Junio 2010
MATLAB Examen Junio 2010MATLAB Examen Junio 2010
MATLAB Examen Junio 2010Jose Cordova
 
2012 interfaz grafica en guide matlab
2012 interfaz grafica en guide matlab2012 interfaz grafica en guide matlab
2012 interfaz grafica en guide matlabCarlos Yagamy
 
CreacióN De Una Interfaz GráFica Del Usuario(Gui)
CreacióN De Una Interfaz GráFica Del Usuario(Gui)CreacióN De Una Interfaz GráFica Del Usuario(Gui)
CreacióN De Una Interfaz GráFica Del Usuario(Gui)Arturo Salinas
 

Destacado (20)

Matlab
MatlabMatlab
Matlab
 
MATLAB - Practica 1 Junio 2010
MATLAB - Practica 1 Junio 2010MATLAB - Practica 1 Junio 2010
MATLAB - Practica 1 Junio 2010
 
Practica 7
Practica 7Practica 7
Practica 7
 
GUI EN MATLAB MODULACION PULSO UNICO
GUI EN MATLAB MODULACION PULSO UNICOGUI EN MATLAB MODULACION PULSO UNICO
GUI EN MATLAB MODULACION PULSO UNICO
 
Practica 6
Practica 6Practica 6
Practica 6
 
MATLAB Febrero - Practica 3
MATLAB Febrero - Practica 3MATLAB Febrero - Practica 3
MATLAB Febrero - Practica 3
 
Practica 4
Practica 4Practica 4
Practica 4
 
Avanse de proyecto de calculo
Avanse de proyecto de calculoAvanse de proyecto de calculo
Avanse de proyecto de calculo
 
Practica 8
Practica 8Practica 8
Practica 8
 
MATLAB Febrero - Practica 2
MATLAB Febrero - Practica 2MATLAB Febrero - Practica 2
MATLAB Febrero - Practica 2
 
Practica 2 - VOIP II
Practica 2 - VOIP IIPractica 2 - VOIP II
Practica 2 - VOIP II
 
MATLAB Febrero - Practica 4
MATLAB Febrero - Practica 4MATLAB Febrero - Practica 4
MATLAB Febrero - Practica 4
 
Practica 5
Practica 5Practica 5
Practica 5
 
MATLAB Marzo - Examen
MATLAB Marzo - ExamenMATLAB Marzo - Examen
MATLAB Marzo - Examen
 
UtplMadrid_Tutorías_MATLAB_IMAGENES MATLAB
UtplMadrid_Tutorías_MATLAB_IMAGENES MATLABUtplMadrid_Tutorías_MATLAB_IMAGENES MATLAB
UtplMadrid_Tutorías_MATLAB_IMAGENES MATLAB
 
MATLAB Examen Junio 2010
MATLAB Examen Junio 2010MATLAB Examen Junio 2010
MATLAB Examen Junio 2010
 
2012 interfaz grafica en guide matlab
2012 interfaz grafica en guide matlab2012 interfaz grafica en guide matlab
2012 interfaz grafica en guide matlab
 
Guide
GuideGuide
Guide
 
CreacióN De Una Interfaz GráFica Del Usuario(Gui)
CreacióN De Una Interfaz GráFica Del Usuario(Gui)CreacióN De Una Interfaz GráFica Del Usuario(Gui)
CreacióN De Una Interfaz GráFica Del Usuario(Gui)
 
Silabo programación ii 2015-i
Silabo programación ii 2015-iSilabo programación ii 2015-i
Silabo programación ii 2015-i
 

Similar a Graficas matlab

Similar a Graficas matlab (20)

Matlab
MatlabMatlab
Matlab
 
Presentación interfaz gráfica_matlab
Presentación interfaz gráfica_matlabPresentación interfaz gráfica_matlab
Presentación interfaz gráfica_matlab
 
DIAPOSITIVA - GUIDE.pptx-----------------------------
DIAPOSITIVA - GUIDE.pptx-----------------------------DIAPOSITIVA - GUIDE.pptx-----------------------------
DIAPOSITIVA - GUIDE.pptx-----------------------------
 
Mini Tutorial De Matlab
Mini Tutorial De MatlabMini Tutorial De Matlab
Mini Tutorial De Matlab
 
Visual basic ..!
Visual basic ..!Visual basic ..!
Visual basic ..!
 
Guide
GuideGuide
Guide
 
Guide
GuideGuide
Guide
 
Visual basic
Visual basicVisual basic
Visual basic
 
Visual basic
Visual basicVisual basic
Visual basic
 
Herramientas y Desarrollo de Software
Herramientas y Desarrollo de SoftwareHerramientas y Desarrollo de Software
Herramientas y Desarrollo de Software
 
Visualbasic6.0
Visualbasic6.0Visualbasic6.0
Visualbasic6.0
 
Loreidys gonzales fundamentos de visual basic
Loreidys gonzales fundamentos de visual basicLoreidys gonzales fundamentos de visual basic
Loreidys gonzales fundamentos de visual basic
 
VERUSKA SALA
VERUSKA SALAVERUSKA SALA
VERUSKA SALA
 
Roxana
RoxanaRoxana
Roxana
 
Visual Basic
Visual BasicVisual Basic
Visual Basic
 
Visual
VisualVisual
Visual
 
Visual Basic 6.0
Visual Basic 6.0Visual Basic 6.0
Visual Basic 6.0
 
Gabriela Chourio
Gabriela ChourioGabriela Chourio
Gabriela Chourio
 
Fundamentos de visual basic
Fundamentos de visual basicFundamentos de visual basic
Fundamentos de visual basic
 
Fundamentos de visual basic
Fundamentos de visual basicFundamentos de visual basic
Fundamentos de visual basic
 

Último

NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
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
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
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
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 

Último (20)

NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
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
 
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
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
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
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 

Graficas matlab

  • 2. INTERFAZ GRÁFICA DE USUARIO EN MATLAB 2
  • 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++. 3
  • 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. 4
  • 5. INICIANDO GUIDE  Para crear una GUI en MatLab usamos GUIDE, lo podemos hacer de tres formas:  Ejecutando el comando guide en la ventana de comandos: >> guide  Haciendo un clic en el ícono GUIDE que muestra la figura:  Ejecutando del menú principal: File – New GUI 5 GUIDE
  • 6. VENTANA DE INICIO DE GUI 6
  • 7. VENTANA DE INICIO DE GUI OPCIONES: 7 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’).
  • 8. INTERFAZ GRÁFICA DE USUARIO EN BLANCO 8 ÁREA DE DISEÑO PALETA DE COMPONENTES BARRA DE MENÚS BARRA DE HERRAMIENTAS
  • 9. INTERFAZ GRÁFICA DE USUARIO 9 BARRA DE HERRAMIENTAS:
  • 10. INTERFAZ GRÁFICA DE USUARIO 10 • Para obtener la etiqueta de cada elemento de la paleta de componentes ejecutamos: File Preferences y seleccionamos Show names in component palette.
  • 11. INTERFAZ GRÁFICA DE USUARIO 11 • La siguiente tabla muestra una descripción de los componentes de la paleta de componentes:
  • 12. PROPIEDADES DE LOS COMPONENTES DE UNA GUI 12 • Cada uno de los elementos de GUI, tiene un conjunto de opciones que podemos acceder con clic derecho.
  • 13. INSPECTOR DE PROPIEDADES 13 • 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.
  • 14. VIEW CALLBACKS 14 • 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.
  • 15. 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), 15
  • 16. CARACTERÍSTICAS GENERALES DE UNA GUI EN MATLAB 16 Entonces, ahora ya tenemos un archivo (interfaz.fig) y otro archivo (interfaz.m)
  • 17. SENTENCIA HANDLES • Todos los valores de las propiedades de los elementos (color, valor, posición, string, etc.) y los valores de las variables transitorias del programa se almacenan en una estructura, los cuales son accedidos mediante un único y mismo identificador para todos éstos. El identificador se asigna en: % Choose default command line output for interfaz handles.output = hObject; • Cada uno de los objetos de MatLab tiene un identificador único (handles), a los cuales se les llamará handles o id. • handles, es el identificador a los datos de la aplicación. Esta definición de identificador es salvada con la siguiente instrucción: % Update handles structure guidata(hObject, handles); • guidata, es la sentencia para salvar los datos de la aplicación. 17
  • 18. 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.18
  • 19. 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). 19
  • 20. ESTRUCTURA DE LOS GRÁFICOS DE MATLAB • Los gráficos de MatLab tienen una estructura jerárquica formada por objetos de distintos tipos. • Esta jerarquía tiene forma de árbol. 20
  • 21. ESTRUCTURA DE LOS GRÁFICOS DE MATLAB • Según se muestra en la figura anterior, el objeto más general es la pantalla (screen). Este objeto es la raíz de todos los demás y sólo puede haber un objeto pantalla. Una pantalla puede contener una o más ventanas (figures). A su vez cada una de las ventanas puede tener uno o más ejes de coordenadas (axes) en los que representar otros objetos de más bajo nivel. Una ventana puede tener también controles (uicontrol) tales como botones, barras de desplazamiento, botones de selección o de opción, etc.) y menús (uimenu). Finalmente, los ejes pueden contener los cinco tipos de elementos gráficos que permite MATLAB: líneas (line), polígonos (patches), superficies (surface), imágenes bitmap (image) y texto (text). • La jerarquía de objetos mostrada indica que en MatLab hay objetos padres e hijos. Por ejemplo, todos los objetos ventana son hijos de pantalla, y cada ventana es padre de los objetos ejes, controles o menús que están por debajo. A su vez los elementos gráficos (líneas, polígonos, etc.) son hijos de un objeto ejes, y no tienen otros objetos que sean sus hijos. • Cuando se borra un objeto de MatLab automáticamente se borran todos los objetos que son sus descendientes. Por ejemplo, al borrar unos ejes, se borran todas las líneas y polígonos que son hijos suyos. 21
  • 22. 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') 22
  • 23. 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. 23
  • 24. OPCIONES DEL COMANDO UICONTROL • El comando uicontrol permite definir los controles gráficos de MatLab. 24 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
  • 25. OPCIONES DEL COMANDO UICONTROL 25 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
  • 26. OPCIONES DEL COMANDO UICONTROL 26 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. Según sea uno
  • 27. COMANDO UICONTROL MATLAB puede tener varias ventanas abiertas, pero siempre hay una y sólo una que es la ventana activa. A su vez una ventana puede tener varios ejes (axes), pero sólo unos son los ejes activos. MATLAB dibuja en los ejes activos de la ventana activa. Los identificadores de la ventana activa, de los ejes activos y del objeto activo se pueden obtener respectivamente con los comandos gcf (get current figure), gca (get current axes) y gco (get current object): gcf devuelve un entero, que es el handle de la ventana activa gca devuelve el handle de los ejes activos gco devuelve el handle del objeto activo Los objetos se pueden borrar con el comando delete: delete(handle) borra el objeto correspondiente y todos sus hijos 27
  • 28. COMANDO UICONTROL CHECK BOXES Los botones de selección permiten al usuario seleccionar entre dos opciones. Los botones de selección actúan como interruptores, indicando un estado on (si el botón está activado) u off (si el botón está desactivado). El valor de ambos estados viene definido por las opciones Max y Min, respectivamente. Los botones de selección deben ser independientes unos de otros. Ejemplo: El siguiente conjunto de instrucciones crea una caja con una opción, que permite visualizar ejes de una figura dentro de una función plot: 28
  • 29. COMANDO UICONTROL % Definir un texto fijo como título para los botones de selección txt_axes = uicontrol(gcf,... 'Style','text',... 'Units','normalized','Position',[0.4 0.55 0.25 0.1],... 'String','Seleccione la opcion'); % Definir la checkbox para la propiedad Box de los ejes cb_box = uicontrol(gcf,... 'Style','checkbox',... 'Units','normalized','Position',[0.4 0.475 0.25 0.1],... 'String','Box=on',... 'CallBack',['set(gca,''Box'',''off''),',... 'if get(cb_box,''value'')==1,',... 'set(gca,''Visible'',''on''),',... 'set(gca,''Box'',''on''),',... 'else,',... 'set(gca,''Visible'',''off''),',... 'end']); 29
  • 30. COMANDO UICONTROL 30 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
  • 31. COMANDO UICONTROL BARRAS DE DESPLAZAMIENTO (SCROLLING BARS O SLIDERS) Las barras de desplazamiento permiten al usuario introducir un valor entre un rango de valores. El usuario puede cambiar el valor clicando sobre la barra, clicando en las flechas laterales o bien arrastrando el elemento central con el ratón. Ejemplo: El siguiente ejemplo muestra como se utilizan las barras de desplazamiento para mover un sistema de referencia espacial: 31
  • 32. COMANDO UICONTROL % Obtener un id de la ventana activa y borrar su contenido fig = gcf; clf % Los callbacks definen la propiedad View de los ejes % a partir de os valores de las barras de desplaz. (Value property) % y escriben sus valores en los controles text % % Definir la barra para el ángulo de azimut sli_azm = uicontrol(fig,'Style','slider','Position',[50 50 120 20],... 'Min',-90,'Max',90,'Value',30,... 'CallBack',[... 'set(azm_cur,''String'','... 'num2str(get(sli_azm,''Val''))),',... 'set(gca,''View'',',... '[get(sli_azm,''Val''),get(sli_elv,''Val'')])']); % Definir la barra para el ángulo de elevación sli_elv = uicontrol(fig,... 'Style','slider',... 'Position',[240 50 120 20],... 'Min',-90,'Max',90,'Value',30,... 'CallBack',[... 'set(elv_cur,''String'',',... 'num2str(get(sli_elv,''Val''))),',... 'set(gca,''View'',',... '[get(sli_azm,''Val''),get(sli_elv,''Val'')])']); % Definir los controles de texto para los valores mínimos 32
  • 33. COMANDO UICONTROL azm_min = uicontrol(fig,... 'Style','text',... 'Pos',[20 50 30 20],... 'String',num2str(get(sli_azm,'Min'))); elv_min = uicontrol(fig,... 'Style','text',... 'Pos',[210 50 30 20],... 'String',num2str(get(sli_elv,'Min'))); % Definir los controles de texto para los valores máximos azm_max = uicontrol(fig,... 'Style','text',... 'Pos',[170 50 30 20],... 'String',num2str(get(sli_azm,'Max')),... 'Horiz','right'); elv_max = uicontrol(fig,... 'Style','text',... 'Pos',[360 50 30 20],... 'String',num2str(get(sli_elv,'Max')),... 'Horiz','right'); % Definir las etiquetas de las barras azm_label = uicontrol(fig,... 'Style','text',... 'Pos',[50 80 65 20],... 'String','Azimuth'); elv_label = uicontrol(fig,... 'Style','text',... 'Pos',[240 80 65 20],... 'String','Elevación'); 33
  • 34. COMANDO UICONTROL % Definir los controles de texto para los valores actuales % Los valores son inicializados aquí y son modificados por los callbacks % de las barras cuando el usuario cambia sus valores azm_cur = uicontrol(fig,... 'Style','text',... 'Pos',[120 80 50 20],... 'String',num2str(get(sli_azm,'Value'))); elv_cur = uicontrol(fig,... 'Style','text',... 'Pos',[310 80 50 20],... 'String',num2str(get(sli_elv,'Value'))); 34
  • 35. COMANDO UICONTROL 35 1. La siguiente instrucción dibujará en la pantalla del gráfico un PUSH BUTTON, que tiene como nombre Start Plot. Al pulsarlo se ejecutarán las instrucciones contenidas en el fichero mifunc.m: pbstart = uicontrol(gcf, 'Style', 'push', 'Position',[10 10 100 25], 'String', 'Start Plot', 'CallBack', 'mifunc'); donde es necesario crear un fichero llamado mifunc.m, que será ejecutado al pulsar sobre el botón. En lugar de este fichero también puede ponerse una cadena de caracteres conteniendo distintos comandos, que será evaluada como si se tratase de un fichero *.m. % fichero .m [x,y]=meshgrid(-1:.1:1); n=20; for j = 1:n t=(2*pi/19)*(j-1); z=2*sin(t)*exp(-x.^2-y.^2); surf(x,y,z),axis([-1 1 -1 1 -2 2]) F(j) = getframe; end movie(F,6) La siguiente instrucción dibujará en la pantalla del gráfico una caja de selección (POP-UP MENUS) desplegable que permite elegir una opción entre varias mostradas en una lista. Eligiendo una de las opciones, MatLab realizará la opción elegida. El menú se despliega pulsando sobre la flecha de la derecha. La opción sobre la que pase el ratón aparecerá de otro color. %Definir el menú pop-up popcol = uicontrol(gcf, 'Style', 'popup', 'String', 'red|blue|green|yellow', 'Position',[400 50 120 20],
  • 36. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO 36 • 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');
  • 37. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SOFTWARE DE SIMULACIÓN - BPDP 37 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). function togglebutton1_Callback(hObject, eventdata, handles) boton_estado = get(handles.togglebutton1,'value') if boton_estado==get(handles.togglebutton1,'Max') %TOGGLE BUTTON se disp('Él botón se encuentra presionado') %encuentra presionado elseif boton_estado==get(handles.togglebutton1,'Min') %TOOGLE BUTTON no se disp('Él botón no se encuentra presionado') %encuentra presionado end
  • 38. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SOFTWARE DE SIMULACIÓN - BPDP 38 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.
  • 39. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SOFTWARE DE SIMULACIÓN - BPDP 39 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
  • 40. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SOFTWARE DE SIMULACIÓN - BPDP 40 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
  • 41. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SOFTWARE DE SIMULACIÓN - BPDP 41 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 function edit2_Callback(hObject, eventdata, handles) valor_entrada = str2double(get(handles.edit2,'string')) %convierte el string en double if isnan(valor_entrada) %verifica si la cadena ingresada es no-numérico (isnan) errordlg('Ingresar un valor numérico','Input') %se visualiza un diálogo de error end
  • 42. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO 42 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')
  • 43. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SOFTWARE DE SIMULACIÓN - BPDP 43 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.
  • 44. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SOFTWARE DE SIMULACIÓN - BPDP 44 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')
  • 45. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SOFTWARE DE SIMULACIÓN - BPDP 45 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
  • 46. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SOFTWARE DE SIMULACIÓN - BPDP 46 LIST BOX function listbox1_Callback(hObject, eventdata, handles) valor=get(handles.listbox1,'Value') if(valor==1) set(handles.text1,'String','UNO'); elseif(valor==2) set(handles.text1,'String','DOS'); elseif(valor==3) set(handles.text1,'String','TRES'); else set(handles.text1,'String','CUATRO'); end
  • 47. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SOFTWARE DE SIMULACIÓN - BPDP 47 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
  • 48. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SOFTWARE DE SIMULACIÓN - BPDP 48 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.
  • 49. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SOFTWARE DE SIMULACIÓN - BPDP 49 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
  • 50. CONTROLES DE LA INTERFAZ GRÁFICA DE USUARIO SOFTWARE DE SIMULACIÓN - BPDP 50 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
  • 51. ELABORACIÓN DE UNA INTERFAZ GRÁFICA 1. Creación de formularios. Abrir el editor de formularios, digitando la orden guide en la ventana de comandos, el cual desplega el formulario en modo de reja, en la cual se agragarán los controles que se seleccionen de la paleta. >>guide Se debe especificar el tamaño de la GUI a un valor exacto, efectuando un clic en la opción View del menú de herramientas y seleccionando luego la opción Property Inspector del menú y definir en la propiedad Position los valores que deberá tener el formulario. 51
  • 52. ELABORACIÓN DE UNA INTERFAZ GRÁFICA 2. Adición de componentes. Seleccione los componentes de la paleta para agregar y arrástrelos al área del esquema. SOFTWARE DE SIMULACIÓN - BPDP 52
  • 53. ELABORACIÓN DE UNA INTERFAZ GRÁFICA 3. Alineación de objetos. Para alinear los controles entre si, dé un clic en la opción Align Objects del menú Tools. La herramienta de alineación muestra los objetos seleccionados y se prepara para ser alineado según las condiciones seleccionadas. SOFTWARE DE SIMULACIÓN - BPDP 53
  • 54. ELABORACIÓN DE UNA INTERFAZ GRÁFICA 4. Fijar propiedades para cada control. Para poner las propiedades de cada control, dé un clic en la opción View y seleccione luego la opción Property Inspector, y defina los valores. SOFTWARE DE SIMULACIÓN - BPDP 54
  • 55. ELABORACIÓN DE UNA INTERFAZ GRÁFICA 5. Activación de la Interfaz Gráfica de Usuario (GUI). Active la GUI seleccionando Run del menú Tools o use la flecha de color verde del toolbar de guide. SOFTWARE DE SIMULACIÓN - BPDP 55
  • 56. ELABORACIÓN DE UNA INTERFAZ GRÁFICA 6. Programación de la Interfaz Gráfica de Usuario (GUI). Cuando se graba primero o activa una GUI, guide genera el archivo .m de la aplicación que contendrá todo el código para ejecutar y controlar la GUI. Se debe escribir dentro del callback de las funciones, las órdenes que se ejecutarán cuando los usuarios activen un control en la GUI. Guide genera este archivo .m, con las subfunciones vacías para cada componente que tiene un callback asociado con él. SOFTWARE DE SIMULACIÓN - BPDP 56 % --- Executes on button press in surf. function surf_Callback(hObject, eventdata, handles) % hObject handle to surf (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
  • 57. ELABORACIÓN DE UNA INTERFAZ GRÁFICA6. Programación de la Interfaz Gráfica de Usuario (GUI). SOFTWARE DE SIMULACIÓN - BPDP 57 function surf_Callback(hObject, eventdata, handles) [x,y]=meshgrid(-5:.4:5); z=(x.^2).*exp(-y.^2); surf(z); function mesh_Callback(hObject, eventdata, handles) [x,y]=meshgrid(-8:.4:8,-3:0.3:5); z=x.^2+y.^2; mesh(z); function contour_Callback(hObject, eventdata, handles) [x,y]=meshgrid(-8:.4:8,-3:0.3:5); z=(sin(x)./(y+9)); contour(x,y,z); function menu_Callback(hObject, eventdata, handles) opcion=get(handles.menu,'value'); switch opcion case 1 %usuario seleccionó la primera opción x=-8:0.2:8; y=x.*sin(x); plot(x,y) grid on xlabel('Eje X') ylabel('Eje Y') case 2 %usuario seleccionó la segunda opción x=-8:0.2:8; y=sin(x); bar(x,y) grid on case 3 %usuario seleccionó la tercera opción x=-5.5:0.2:5.5; y=x.*sin(x); polar(x,y) grid on end
  • 58. ACCEDIENDO A LOS IDENTIFICADORES • Cada identificador de un objeto se guarda en un campo denominado estructuras de los identificadores, teniendo el mismo nombre como el Tag del objeto. SOFTWARE DE SIMULACIÓN - BPDP 58 Por ejemplo: handles.surf, contiene el identificador del pushbutton 1 handles.mesh, contiene el identificador del pushbutton 2 handles.contour, contiene el identificador del pushbutton 3 handles.menu, contiene el identificador del popupmenu id1=handles.surf id2=handles.mesh id3=handles.cont our id4=handles.men u