51
DIA 3: GRAFICOS BIDIMENSIONALES Y TRIDIMENSIONAL, INTERFAZ GRAFICO EN MATLAB. EJERCICIOS

Matlab Dia 3

Embed Size (px)

Citation preview

Page 1: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 1/66

DIA 3: GRAFICOSBIDIMENSIONALES Y

TRIDIMENSIONAL,INTERFAZ GRAFICO EN

MATLAB. EJERCICIOS

Page 2: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 2/66

Gráficos Bidimensionales

El comando básico para la representación de gráficos 2D es el comando plot.

Su sintaxis es:

plot(x,y): dibuja el conjunto de puntos (x,y) donde las abscisas de los puntos

se encuentran en el vector x y las ordenadas en el y.

Para representar una función f(x) es necesario conocer los valores de puntos

de la forma (x,f(x)). Para hacerlo se tiene que:

- Definir un vector x con el rango de variación donde se desea pintar la

función. Para ello puede ser muy útil el comando linspace(xmin,xmax,n).

Crear el vector y evaluando f en x. Por ejemplo:

Page 3: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 3/66

>> x=linspace(0,10,100);

>> y=sin(x);

>> plot(x,y)

Función que sirve pararealizar el

espaciamiento delvector

Page 4: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 4/66

También es posible dibujar una función con el comando fplotcuya sintaxis es la siguiente: fplot(‘f(x)’,[xmin,xmax]). Así,este comando admite como argumento un nombre defunción o de un fichero .m en el que está definida la función

a representar. Por ejemplo:>> fplot(‘sin(x)',[-3*pi,3*pi,-1,1])

Page 5: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 5/66

Nota: si no se cierra la ventana de dibujo generada alevaluar un comando como los anteriores, si se vuelve aejecutar uno de ellos, se dibuja sobre dicha ventana

perdiéndose el primer dibujo.

También podemos dibujar varias funciones a la vez:

plot(x,y,x,z) donde x el vector de las abscisas, común paralas dos representaciones, y es el de las ordenadas de la

primera representación y z las de la segunda.fplot(‘[f 1(x),f2(x),...]’,[xmin,xmax]) donde f1, f2, … sonlas funciones a representar en el intervalo de variaciónmarcado por xmin y xmax.

-

Page 6: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 6/66

Con los comandos hold on, hold off .

Todos los gráficos que se ordene dibujar entre los comandoshold on y hold off se representan en la misma figura.

>> hold on

>> x=[-3*pi:1:3*pi];

>> plot(x,sin(x))

>> plot(x,tan(x),'r')

>> hold off 

Page 7: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 7/66

El comando subplot. Una ventana gráfica se puede dividir en mparticiones horizontales y n verticales para representar mxfiguras. Cada una de las particiones tendrá sus ejes aunque la

propiedades serán comunes a todas ellas. La sintaxis essubplot(m,n,i), donde m y n son el número de subdivisiones e i lsubdivisión activa.

>> x=0:0.1:2*pi;

>> y=sin(x);z=cos(x);t=exp(-x);v=x.^2;

>> subplot(2,2,1), plot(x,y)>> subplot(2,2,2), plot(x,z)

>> subplot(2,2,3), plot(x,t)

>> subplot(2,2,4), plot(x,v)

Page 8: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 8/66

Opciones de dibujo

Hemos visto que el comando plot(x,y) dibuja los gráficos conunas características predefinidas en el programa, es posiblealterarlas a partir de plot(x,y,s) donde s se compone de dosdígitos entre comillas. Uno fija el color de la línea y otro elcarácter a usar en el gráfico.

plot(x,y,'-*g')

dibuja los puntos unidos con una línea

continua, marcando los puntos con *, y en

verde. Otros tipos de marcadores son: . * x

o + (marcan los puntos en el gráfico).

Page 9: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 9/66

Matlab cuenta con otros tipos de línea para nuestras gráficas:

- (línea continua)

- - (línea formada por trazos discontinuos)

-. (línea formada por puntos y trazos)

: (línea formada por puntos)

Los colores vienen dados por: y: amarillo, g: verde, m: magenta, b: azul,c:cían, w: blanco, r: rojo, k: negro.

Se puede modificar el grosor de línea incluyendo la cadena: ‘Linewidth’,

número_indicativo_del_grosor. Por ejemplo: plot(x,y,'linewidth',2)

Page 10: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 10/66

En general, podemos obtener una excelente descripción del comando plot y

otros relacionados con el mediante la ejecución de help plot:

>> Help plot

Page 11: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 11/66

Títulos y etiquetas

Matlab permite manejar correctamente anotaciones sobre los grejes mediante la colocación adecuada de títulos y etiquetas

leyendas. Los comandos más usados son:

title (‘texto’): añade el texto entre comillas como título del gráf

xlabel(‘texto’): añade el texto entre comillas como texto al lado

ylabel(‘texto’): añade el texto entre comillas como texto al lado

legend(‘texto’): sitúa la leyenda especificada en el texto.

grid: crea rejillas en los ejes

gtext(‘texto’): permite situar el texto especificado en elseñalemos con el ratón dentro de la ventana de trabajo.

Page 12: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 12/66

Control de ejes

En el control de los ejers Matlab tiene opciones por defecto, pero muchas ocasiones

interesante alterarlas. Ya hemos visto que la variación en el eje x se elige al fijar las

coordenadas x de los puntos. Por defecto el programa ajusta la escala de cada uno delos ejes de modo que varíe entre un máximo y el mínimo valor a representar (es el mo

Para definirlos se utiliza el comando axis cuya sintaxis es: axis ([xmin,xmax,ymin,ymax

axis(‘auto’) devuelve la escala al valor por defecto.

Cabe destatar que: axis off elimina los ejes del dibujo y axis on los incorpora.

Page 13: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 13/66

La ventana gráfica de Matlab.

La mayoría de las opciones de cambio en una gráfica presentadas con anterioridad, pdesde la pantalla de dibujo. Posibilidades que se han mejorado en las versiones 6 del p

Resulta muy útil inspeccionar cada uno de los menús de esta ventana ejecut

directamente en ella. Así, por ejemplo, el menú insert permite directamente inseetiquetas en los ejes, leyendas o título entre otras.

Page 14: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 14/66

En el menú edit aparecen entre otros los comandos Figure ProperProperties y Current Object Properties, con ellos se abre peditores correspondientes donde se nos da la posibilidad de ca

opciones de dibujo.

Page 15: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 15/66

El editor de ejes

Las pestañas x,y,z nos permiten actuar sobre cada uno de los ejes, poniendo etiquetas cambiando el color (Color), cambiando los límites (Limit),...

Page 16: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 16/66

Page 17: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 17/66

Grafico 2

x=[0:0.001:2*pi];

plot(x,cos(3*x), x, sin(3*x));xlabel('x');legend('cos(3x)','sin(3x)')ylabel('Amplitud')title('plot bidimensional')

axis([0 2*pi -1.1 1.1])set(gca, 'ytick',[-1 -0.5 0 0.5 1])set(gca, 'xtick',[0 pi/2 pi 3*pi/2 2*pi])set(gca, 'XTickLabel',{'0'; 'pi/2'; 'pi'; '3*pi/2'; '2*pi'})

Page 18: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 18/66

Gráfico 3

x1=[0:0.001:2*pi];

x2=[0:pi/30:2*pi];plot(x1, cos(3*1),'r:', x2, cos(3*x2),'bo')gridhandle_arrow=annotation('arrow', 0.13+[1/7 2/14], [4/15/10],'Color',[1 0 0])

text(0.6,0.1, 'cero de la funcion')set(handle_arrow, 'HeadStyle', 'plain')

Page 19: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 19/66

Grafico 4

x=[0:0.001:2*pi];y=[cos(x); cos(2*x); cos(3*x);cos(4*x)];plot(x,y)

Page 20: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 20/66

Grafico 5

x= logspace(-1,2);loglog(x,exp(x),'-s')grid

Page 21: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 21/66

Grafico 6

income= [3,2 4,1 5.0 5.6];outgo= [2.5 4.0 3.35 4.9];subplot(2, 1, 1); plot(income)subplot(2,1,2) ; stem(outgo)

Page 22: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 22/66

Grafico 7

x1=[0:0.001:2*pi];x2= [0:pi/30:2*pi];plot(x1, cos(x1));hold%current plot heldplot(x2,cos(x2), 'ro');

Page 23: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 23/66

Grafico 8

x1=[0:0.001:2*pi];plot(x1,sin(x1))figure

plot(x1, cos(x1))figure(1)

gtext('esto es seno(x)')[x,y]=ginput

Page 24: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 24/66

Grafico 9

x=-2.9:0.2:2.9;

bar(x,exp(-x.*x),'r')

Page 25: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 25/66

Grafico 10

Z=peaks;[C h] = contour(Z,10);

clabel(C,h)title({'Contour Labeled

Using','clavel(C,h)'})

Page 26: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 26/66

Page 27: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 27/66

Gráfico 12

Y=randn(3,5);h=bar(Y);

set(get(h(1),'baseline'),'LineWidth',2,'LineStyle',':')

colormap summer%Change the color scheme

Page 28: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 28/66

Gráficos tridimensionalesLa representación de funciones 3D ( es decir, funciones f : R 2® R ) se puede realizaren MATLAB de forma directa, utilizando alguna de las utilidades predefinidas endicho lenguaje. Para ello, en cualquier caso, es necesario que, previamente, se

definan todos los puntos ( x , y ) sobre los cuales va a tomar valores la función f .Esta tarea se realiza discretizando, en primer lugar, los ejes x e y que definen elplano y, a partir de esta discretización inicial, se calculan todos los pares depuntos ( x, y ).

En Matlab existen muchas funciones para representar las gráficas en 3D.

Page 29: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 29/66

Gráficos tridimensionalesfigura 13

[X,Y,Z]= peaks;

contour3(X,Y,Z,20)h=findobj('Type','patch');

set(h,'LineWidth',2)title('Twenty Contours of the peaks

Function')

Page 30: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 30/66

Grafico 14

for k= 1:16

plot(fft(eye(k+16)))axis equal

M(k) = getframe;end

movie(M,30)movie2avi(M,'movie.avi');

Page 31: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 31/66

figura15

RGB=imread('imagen1.jpg');

figure('position',[100 100 size(RGB,2)size(RGB,1)]);

image(RGB); set(gca,'Position',[0 0 1 1])

Page 32: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 32/66

Figura 16

t=0:pi/50:10*pi;

plot3(sin(t), cos(t), t)axis square; grid on

Page 33: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 33/66

Figura 17

[X,Y]=meshgrid([-2:0.1:2]);

Z=X.*exp(-X.^2-Y.^2);plot3(X,Y,Z)

grid on

Page 34: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 34/66

Grafico 18

[X, Y]= meshgrid(-8:.5:8);

R= sqrt(X.^2+Y.^2) + eps;Z= sin(R)./R;mesh(X,Y,Z)

Page 35: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 35/66

Interfaces

Una GUI debe ser consistente y fácilmente entendida pusuario

• Proporciona al usuario con la habilidad de usaprograma sin tener que preocuparse sobre los comapara ejecutar un programa.

Page 36: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 36/66

- Componentes

– Gráficos

• pushbuttons, edit boxes, sliders, labels, menus, etc…

– Estáticos

• Frames, text strings,…

– Ambos se crean usando la función uicontrol

• Figuras – los componentes están contenidos en figuras

• Callbacks – son funciones que realizan las acciones

requeridas cuando un componente se activa.

Page 37: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 37/66

MATLAB dispone de una utilidad para el desarrollo interinterfaces de usuario (GUI) llamado GUIDE

• Para ello se escribe el comando guide o se pulsa sobre

en el entorno de desarrollo Matlab.

Page 38: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 38/66

Aparece una ventana para seleccionar plantillas o abrir Gexistentes.

A l i l ill b i

Page 39: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 39/66

Aparece una ventana para seleccionar plantillas o abrir fichero.

Page 40: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 40/66

Cambio de preferencias para mostrar nombres

Page 41: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 41/66

El editor permite construir interfaces arrastrando ycomponentes en el área de diseño de la GUI.

• Todas las GUIs creadas con guide empiezan con uninicial (callback) que se invoca cuando se invoca la inter

• La operación automática de guardado (save) genera u

.m y un fichero .fig.

• El fichero .fig contiene el diseño del GUI en binario y

el fichero .m contiene el código que controla el GUI.

Page 42: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 42/66

Componentes disponibles en la paleta

CONTROL DESCRIPCIÓN

Push Button Genera una acción

Slider Representa un rango de valores

Radio Button Representa una opción

Check Box Indica el estado de una opción

Edit Text Para editar texto

Static text Muestra un string de texto

Pop-up Menu Provee una lista de opciones

Listbox Lista deslizable

Toggle Button Genera una acción on, off

 Axes Para graficar

Panel Visualiza grupo de controles

Button Grup Es un panel exclusivo para radio buttons y

toggle buttons

 ActiveX Control Despliega controles ActiveX en Gui

Page 43: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 43/66

Una aplicación GUIDE consta de dos archivos: .m y .fig

.m es el que contiene el código con las correspondenbotones de control de la interfaz y el archivo   .fig coelementos gráficos.

Cada vez que se adicione un nuevo elemento engráfica, se genera automáticamente código en el archiv

ejecutar una Interfaz Gráfica, si la hemos etiquetanombre   curso.fig, simplemente ejecutamos en la vcomandos   >> curso. O haciendo click derecho en eseleccionando la opción RUN .

Page 44: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 44/66

Ejemplo de una GUI

A manera de ejemplo, desarrollaremos un GUI Por lo queprocederemos a poner los siguientes componentes:

4 etiquetas

3 cuadros de texto

5 botones

Page 45: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 45/66

SENTENCIAS GET Y SET

La asignación u obtención de valores de los componentes se realiza mediante lassentencias get y set. 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 través de los identificadores handles.

Para colocar el valor de la variable kelvin1 al statictext,(Tag kelvin) escribimos:

set(handles.kelvin,'string',kelvin1);

Para trabajar con

Page 46: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 46/66

jsolo es necesario

donde se quier

Para

nombse da mostra

de

Para empezar a trabajar conalgún componente basta condar click derecho e irnos a

callback el cual mostrarádonde situar el código para laacción del botón

f ti B t C l i C llb k(hObj t td t h dl )

Page 47: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 47/66

function BotonCelsius_Callback(hObject, eventdata, handles)

% hObject handle to BotonCelsius (see GCBO)

% eventdata reserved - to be defined in a future version ofMATLAB

% handles structure with handles and user data (seeGUIDATA)

% Adicionamos

% Para leer el dato colocado en celsius

celsius1=eval(get(handles.celsius, 'string'));

%Para convertir celsius a kelvin y fehrenheit

kelvin1=celsius1 + 273.15;

fahrenheit1=1.8*celsius1 + 32;

%Para escribir datos en los Edit Text

set(handles.kelvin,'string',kelvin1);

set(handles.fahrenheit,'string',fahrenheit1);

Page 48: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 48/66

kelvin1=eval(get(handles.kelvin,'string'));%Para convertir kelvin a celsius y fehrenheit

celsius1=kelvin1 - 273.15;

fahrenheit1=(kelvin1-273.15)*1.8 + 32;

%Para escribir datos en los Edit Text

set(handles.celsius,'string',celsius1);

set(handles.fahrenheit,'string',fahrenheit1);

Insertar esteboton

Page 49: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 49/66

% Adicionamos% Para leer el dato colocado en fahrenheit

fahrenheit1=eval(get(handles.fahrenheit, 'string'));

%Para convertir fahrenheit a celsius y kelvin

celsius1=(fahrenheit1-32)*5/9;

kelvin1=(fahrenheit1-32)*5/9 + 273.15;

%Para escribir datos en los Edit Text

set(handles.celsius,'string',celsius1);

set(handles.kelvin,'string',kelvin1);

Aquí tenemos el cbotonFahr

Page 50: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 50/66

function BotonSalir_Callback(hObject, eventdata, handles)% hObject handle to BotonSalir (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (seeGUIDATA)

close(gcbf)

Código para el boton

Page 51: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 51/66

function botonLimpiar_Callback(hObject, eventdata, handles)% hObject handle to botonLimpiar (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (seeGUIDATA)

limpia=' ';set(handles.celsius,'string',limpia);

set(handles.kelvin,'string',limpia);

set(handles.fahrenheit,'string',limpia);

Ejemplo 2

Page 52: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 52/66

Ejemplo 2

Para este ejemplo realizaremos una serie de gráficos, utilizando figuras y unmenú desplegable.

Por lo cual necesitaremos los siguientes componentes:

Popmenu

Boton

axes

Page 53: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 53/66

En el inspector poner en String d

los sig

Page 54: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 54/66

function figurapop_OpeningFcn(hObject, eventdata, handles,

varargin)

% This function has no output args, see OutputFcn. % hObject handle to figure

if strcmp(get(hObject,'Visible'),'off')

plot(rand(5));

end

Page 55: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 55/66

Vamos al callb

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

Page 56: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 56/66

% 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)

axes(handles.axes1);

%cla;

popup_sel_index = get(handles.popupmenu1, 'Value');

switch popup_sel_index

case 1

plot(rand(5));

case 2

plot(sin(1:0.01:25.99));

case 3

bar(1:.5:10);

case 4

plot(membrane);

case 5

surf(peaks);

end

Ahora vamos a insertar un menú a nuestra interfaz: Daremos click en Menú Ed

Page 57: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 57/66

Daremos click en Menú Edsiguiente cuadro, donde in

menú desple

Al dar clun men

Page 58: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 58/66

un mendespués

Una vez realizado el menú y los submenús procederemos a ingresar el código.

Page 59: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 59/66

% ----------------------------------------------------------------

function File_Callback(hObject, eventdata, handles)

% hObject handle to File (see GCBO)

% eventdata reserved - to be defined in a future version of MATLA

% handles structure with handles and user data (see GUIDATA)

% ----------------------------------------------------------------

function Openmenu_Callback(hObject, eventdata, handles)

% hObject handle to Openmenu (see GCBO)

% eventdata reserved - to be defined in a future version of MATLA

% handles structure with handles and user data (see GUIDATA)

file = uigetfile('*.fig');if ~isequal(file, 0)

open(file);

end

% ---------------------------------------------------------------

Page 60: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 60/66

function imprimirmenu_Callback(hObject, eventdata, handles)

% hObject handle to imprimirmenu (see GCBO)

% eventdata reserved - to be defined in a future version of MATLA

% handles structure with handles and user data (see GUIDATA)printdlg(handles.figure1)

% ----------------------------------------------------------------

Page 61: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 61/66

function closemenu_Callback(hObject, eventdata, handles)

% hObject handle to closemenu (see GCBO)

% eventdata reserved - to be defined in a future version of MATLA

% handles structure with handles and user data (see GUIDATA)

selection = questdlg(['Close ' get(handles.figure1,'Name') '?'],..

['Close ' get(handles.figure1,'Name') '...'],...

'Yes','No','Yes');

if strcmp(selection,'No')

return;

end

delete(handles.figure1)

Ejemplo 3

Page 62: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 62/66

Ejemplo 3

Realizaremos una serie de mensajes, que son de mucha ayuda cuando queramosprogramar algún proyecto.

Para lo cual, necesitaremos los siguientes componentes:

Un panel

5 botones

Anexaremos en e

Page 63: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 63/66

siguiente cód

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

Page 64: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 64/66

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version ofMATLAB

% handles structure with handles and user data (seeGUIDATA)

warndlg('Esto es un aviso','Curso_GUIDE');

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton2 (see GCBO)

% eventdata reserved - to be defined in a future version ofMATLAB

% handles structure with handles and user data (seeGUIDATA)

errordlg('Esto es un mensaje de error',' Curso_GUIDE ');

function pushbutton3_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton3 (see GCBO)

Page 65: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 65/66

% hObject handle to pushbutton3 (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see

GUIDATA)helpdlg('Esto es una ayuda',' Curso_GUIDE ');

function pushbutton4_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton4 (see GCBO)

% eventdata reserved - to be defined in a future version ofMATLAB

% handles structure with handles and user data (see

GUIDATA)

msgbox('Esto es un cuadro de mensaje',' Curso_GUIDE ');

% --- Executes on button press in pushbutton5.

Page 66: Matlab Dia 3

7/25/2019 Matlab Dia 3

http://slidepdf.com/reader/full/matlab-dia-3 66/66

p p

function pushbutton5_Callback(hObject,

eventdata, handles)

% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be defined in a

future version of MATLAB

% handles structure with handles and user

data (see GUIDATA)

questdlg('Esto es una pregunta',' Curso_GUIDE');