You are on page 1of 18

AO DE CONSOLIDACIN DEL MAR

DE GRAU
UNIVERSIDAD NACIONAL DE INGENIERIA
CURSO:

COMPUTACIN II

TEMA:
INTERFAZ GRFICA DE USUARIO
EN MATLAB
PROFESOR: ALEXANDER ABEL BONIFACIO
CASTRO
GRUPO: 1
INTEGRANTES:
HUAMAN MALLQUI JOSEPH FRANK
MOLINA HUAMANI ADDERS MARK
PROLEN ARANA RENATO JEAN PIERE
GUTIERREZ GUTIERREZ KRISTHEL JOSSELYND
RIME QUERO JUBER

2016

INTERFAZ GRFICA DE USUARIO EN MATLAB


Qu es GUI?
Es un programa informtico que sirve para que el usuario pueda interactuar con el
programa o el sistema operativo de una computadora. Una GUI tiene diferentes
elementos grficos: botones, mens, grficos, etc.
Algunos lenguajes de programacin que permiten crear una GUI son: Visual Basic,
Visual C++, TK, etc.

Qu es GUIDE?
GUIDE es un entorno de programacin visual disponible en Matlab para realizar y
ejecutar programas que necesiten ingreso continuo de datos.

1.1 Acceso al GUIDE de Matlab


Para acceder al GUIDE podemos hacerlo de diversas maneras:

Tecleamos y ejecutamos la siguiente instruccin en la ventana de


comandos de Matlab
>> guide

Haciendo click en el cono GUIDE del men principal File New GUI.

Haciendo click en el cono que muestra la figura.

Se presentar el siguiente cuadro de dilogo:

Y hacemos clic en la primera opcin y presionamos ok para crear un


GUIDE vaca.
Al usar GUIDE obtendremos dos archivos:
Un archivo FIG: Contiene la descripcin de los componentes que contiene
la interfase.
Un archivo M: Contiene las funciones y los controles del GUI as como el
callback.
El callback se define a la accin que realizara a cabo un objeto de la GUI
cuando el usuario lo active.

Un archivo FIG

Un archivo
M

1.2 rea de diseo

En la parte superior del rea de diseo se encuentran los mens y opciones de


GUIDE, en la parte izquierda se aprecian los controles y en la parte central, el rea
MENUS Y
OPCIONES DE
PALETA DE
COMPONENT
ES
AREA DE
DISEO

de diseo .

1.3 rea de desarrollo del programa

Al hacer clic en View Callbacks >> CreateForm , entraremos al rea de desarrollo


del programa.

1.4 Uso de botones y comandos


La GUIDE cuenta con las siguientes botones:

CONTROL
Select
Push Button
Slider
Radio Button
Check Box
Edit Text
Static Text
Pop-up men
List Box
Toggle Button
Tables
Axes
Panel button
Button Group
ActiveX Control

DESCRIPCION
Sirve para seleccionar los controles.
Crea un botn y genera una accin.
Representa un rango de valores.
Crea un botn circular que representa
una opcin.
Sirve para dar check a una opcin.
Caja para editar texto.
Crea un letrero.
Provee una lista de opciones.
Muestra una lista deslizable.
Genera una accion on o off.
Genera una tabla.
Crea un rea para grficos.
Agrupa botones como un grupo.
Es un panel exclusivo para radio
buttons y toggle buttons .
Despliega controles ActiveX en Gui .

Inspector de propiedades: Cada control cuenta con diferentes propiedades y es


aqu donde podremos modificar las propiedades:

Luego nos aparecer la siguiente ventana para cambiar sus propiedades.

Activar Figura:
Una vez que hayamos terminado de disear presionamos este botn para activar
la figura y poder probar nuestra GUI.

Al hacer click no aparecer el programa elaborado:

1.5 PRINCIPALES SENTENCIAS EN EL GUIDE DE MATLAB:


SENTENCIAS GET Y SET:
La asignacin u obtencin de valores de los componentes se realiza
mediante las sentencias get y set.
1

Get.- Se utiliza para obtener valores de un objeto.

Set.- Asignar valores a un parmetro especfico de un objeto.

Por ejemplo:
celsius1=eval(get(handles.celsius,'string'));
%Para convertir celsius a kelvin
kelvin1=celsius1 + 273.15;
Notar que siempre se obtienen los datos a travs de los identificadores handles.
Para colocar el valor de la variable kelvin1 al statictext,(Tag kelvin) escribimos:
set(handles.kelvin,'string',kelvin1);
2. Aplicaciones
PRIMERA APLICACION:
Calculadora.fig
Calculadora.m
% --- Executes on button press in uno.
function uno_Callback(hObject, eventdata, handles)
% hObject handle to uno (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
textString=get(handles.Res,'String');
textString=strcat(textString,'1');
set(handles.Res,'String',textString)
% --- Executes on button press in dos
function dos_Callback(hObject, eventdata, handles)
% hObject handle to dos (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
textString=get(handles.Res,'String');
textString=strcat(textString,'2');
set(handles.Res,'String',textString)

% --- Executes on button press in suma.


function suma_Callback(hObject, eventdata, handles)
% hObject handle to suma (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
textString=get(handles.Res,'String');
textString=strcat(textString,'+');
set(handles.Res,'String',textString)
% --- Executes on button press in igual.
function igual_Callback(hObject, eventdata, handles)
% hObject handle to igual (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
textString=get(handles.Res,'String');
textString=eval(textString,'=');
set(handles.Res,'String',textString)
% --- Executes on button press in borrar.
function borrar_Callback(hObject, eventdata, handles)
% hObject handle to borrar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
ini=char(' ');

set(handles.Res,'String',ini);
Al correr el programa se obtiene:

RESUMEN:
Con ayuda de MatLab se logr hacer una calculadora y al mismo tiempo nos
dimos cuenta de la importancia que tiene esta herramienta informtica ya que su
entorno de trabajo es bien util adems de crear grficos de muchos tipos y
presenta una gran ventaja al trabajar con matrices, polinomios y funciones
trigonomtricas, etc.
SEGUNDA APLICACIN:
ConvTemperatura.fig

Al correrse el programa ConvTemp, escribimos en la casilla de Magnitud 200, en la


Unidad de entrada C y en la Unidad de salida K y calculamos. Se obtiene la

siguiente figura:
El programa genera el archivo siguiente ConvTemp :
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to BotonCelsius (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Adicionamos
% Para escribir los datos en los Edit Text
Ein = get (handles.edit1,'string');
Einunits = get( handles. edit2,'string');
Eoutunits = get( handles. edit3,'string');
error= 0;
Y=str2num (Ein);
switch Einunits

case 'C'
X=Y;
%Para convertir Fehrenhit en Celcius
case'F'
X=(Y-32)/1.8;
% Para convertir Kelvin a Celsius
case'K'
X= Y-273.15;
otherwise
error=1;
end
switch Eoutunits
%Para convertir Celcius a Kelvin
case'K'
W= X + 273.15;
case'C'
W=X;
% Para convertir Celsius a Fehrenheit
case'F'
W= X*1.8+32;
otherwise
error=1;
end
if error
disp ('ERROR, LA UNIDAD DE ENTRADA ASIDO INTRODUCIDA
INCORRECTAMENTE, FAVOR DE VERIFICAR LA UNIDAD INTRODUCIDA.');
% Para leer los datos colocados en los Edit1, Edit2y Edit3

else set (handles.edit4,'string',W);


set (handles.edit5,'string',Eoutunits);
end
Resumen:
El comando Guide de Matlab nos permite describir grficamente un anlisis
respecto a un evento ocurrido. La temperatura siendo un factor utilizable para
muchas investigaciones como por ejemplo se puede aplicar para encontrar la
concentracin de sustancias contaminantes del aire, esto nos permite tener un
manejo sustentable del guide respecto a la temperatura como en este caso.

3.Proyecto de investigacin en GUIDE:


Clculo de la Derivada e Integral de funciones, desarrollado en el entorno de
programacin visual disponible en MATLAB.

El siguiente proyecto nos permitir explicar cmo usar los Text Box o Edit Text
para pedir informacin y el Static Text para desplegar resultados, asi como
algunas propiedades importantes.
Para empezar, creamos una nueva figura y agregamos un Static Text, a un lado
ponemos un Edi Text y al lado del Edit Text ponemos un Push Button, debajo de
estos controles ponemos cuatro Static Text y finalmente agregamos dos Push
Button; y lo guardamos como: CalculoDEIN, al finalizar tendremos una interface.
En el primer Static text cambiamos su propiedad con el inspector de propiedades y
modificamos el String a Funcion. Al primer Push Button cambiamos el String a
Calcula.
En el siguiente orden modificamos la propiedad del String a las cuatro Static Text
restantes.

String: Derivada

String:

String: Integral

String:

Finalmente para el PushButton del lado izquierdo modificamos la propiedad String


a Limpiar y al Push Button del lado derecho modificamos el String a Salir.
Ahora vamos a editar el Callback ,cuya accin es decir al control que hacer
cuando este se active, del botn salir y agregamos el cdigo necesario que se va
a continuacin.
close(gcbf);
Luego editamos el Callbakc del botn Limpiar, cuya accin es limpiar la Caja de
Texto de la funcin y los resultados de cada operacin.

Para hacer ello hay que considerar agregar un identificador a cada Tag, esto es,
poner un nombre a cada Tag de cada control para luego llamarlo e identificarlo.
Para ello seleccionamos Tag en el inspector de propiedades. Primero editamos el
Tag de nuestro control de Caja de Texto por : la_ecuacin.
Y para los Static Text que no tienen texto modificamos su Tag en el siguiente
orden por:
res_deriva

res_integra
Aqu hay que introducir el uso de variables globales y locales. Las globales se
refieren a que pueden ser compartidas en cualquier momento por otro Script. Las
locales son las que se definen en un mismo momento y pueden ser usadas por el
mismo Script.
La sintaxis en general para activar un control es:
Variable=findobj(gcbf, Tag, Nombre_de_Tag);
La cual nos indica que primero crea una variable local lo cual contiene
propiedades del objeto cuyo Tag es: Nombre_de_Tag, con esto ya hemos activado
nuestro control, ahora hay que regresar la accin; para ello la sintaxis es:
set(variable, Propiedad, operacin);
esta intruccion nos dice que va a usar el variable local que no contiene las
propiedades del objeto y va a modificar otra propiedad (String, enable, backcolor,
etc) con un determinado valor. Para ejemplificar esto vamos a editar el Callback
del botn Limpia.
Limpio variables locales y globales
Clear;
Clear global;
Obtengo el control de la derivada
Para_ecuacion=findobj(gcbf, Tag , la_ecuacion);
Limpio el control
Limpia = ;
set(para_ecuacion, String,Limpia);

Y realizamos lo mismo para los dems controles, el listado completo se observa a


continuacin:
clear;
clear global;
para_ecuacion = findobj(gcbf,Tag,la_ecuacion);
para_derivada = findobj(gcbf,Tag,res_deriva);
para_integral = findobj(gcbf,Tag,res_integra);
limpia = ;

set(para_ecuacion,string,limpia);
set(para_derivada,String,limpia);
set(para_integral,String,limpia);
Hasta el momento no hemos pedido datos o informacin, el algoritmo para obtener
la ecuacin es:
Variable = eval(get(gcbo,`String`));
Lo que significa que creamos una variable donde vamos a almacenar la
informacin que le llega a la caja de texto para luego utilizarla. Hay que recordar
que aqu es necesario definirla como una variable de tipo global.
El cdigo completo se observa a continuacin.
global ecuacion x;
syms x;
ecuacion = eval(get(gcbo,String));
Finalmente llevaremos a cabo las operaciones correspondientes, las que se
ejecutan al presionar el botn Calcula. Par ello editamos su Callback segn el
siguiente algoritmo:
Preparamos la variable a usar:
global ecuacin x;
syms x;
Obtengo el control de la derivada
para_derivada = findobj(gcbf,`tag`,`res_deriva`);
Realizo el clculo de la derivada:
Derivada1=diff(ecuacin);

Ahora preparo el resultado para poderlo desplegar en forma de carcter usando la


instruccin char().
derivada2 = char (derivada1);
finalmente despliego el resultado de la derivada:
set(para_derivada,String,derivada2);

y realizo la misma operacin para los otros dos clculos. En la siguiente figura se
observa el cdigo completo del botn calcula.
global ecuacion x;
syms x;
para_derivada = findobj(gcbf,Tag,res_deriva);
para_integral = findobj(gcbf,Tag,res_integra);
derivada1 = diff(ecuacion);
derivada2 = char(derivada1);
integral1 = int(ecuacion);
integral2 = char(integral1);
set(para_derivada,String,derivada2);
set(para_integral,String,integral2);

Para probar nuestro proyecto activamos ejecutar o Control + T