Clase
Con este programa pretendemos mostrar el uso de toggle button, así como el empleo de panel button.
Una de las novedades que presenta la versión 7.0.1 de MATLAB en la interfaz gráfica de usuario es el panel de botones (button panel). En este ejemplo, los botones del panel deben tener la condición de que solo uno de ellos deber estar en alto y los demás en estado bajo, paraasí poder configurar el estilo de línea. Además, el botón encendido debe permanecer es estado alto aunque se lo vuelva a seleccionar.
La configuración de los parámetros de la función a graficar se basa en la siguiente tabla:
El sector del m-file destinado a la programación de las condiciones iniciales tiene el siguiente código:
% Asignación del campo axes para la función a graficar.axes(handles.grafica)
x=-10:0.5:10; %Primer intervalo de graficación.
handles.x=x;
handles.h=plot(x,x.^2); %Graficar una parábola.
set(handles.h,'LineStyle','^','Color',[0.5 0 0]);%Estilo de línea
grid off; %Grid inactivo
set(handles.grids,'String','GRID OFF');%Etiquetar el toggle button.
title ('SEÑAL');
handles.slider1=0.1; %Inicializar el valor del slider.set(handles.edit1,'String',handles.slider1);%Mostrar el valor del slider.
Una vez que se ha colocado cada uno de los botones dentro del panel de botones y se los ha etiquetado, se ejecuta lo que muestra la siguiente figura:
En el m-file asociado se creará el siguiente código:
function uipanel1_SelectionChangeFcn(hObject, eventdata, handles)
% hObject handle to uipanel1 (see GCBO)
% eventdata reserved - to be defined ina future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
Para este ejemplo, el campo Tag de de cada botón del panel se ha etiquetado
uno, dos, tres… De esta forma, es más fácil trabajar cada configuración en el m-file. De
esta forma, la programación del panel de botones queda de la siguiente manera:
function uipanel1_SelectionChangeFcn(hObject, eventdata,handles)
% hObject handle to uipanel1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
if (hObject==handles.uno)
set(handles.h,'LineStyle','.','Color','g');
elseif(hObject==handles.dos)
set(handles.h,'LineStyle','o','Color','r');
elseif(hObject==handles.tres)set(handles.h,'LineStyle','x','Color','c');
elseif(hObject==handles.cuatro)
set(handles.h,'LineStyle','+','Color','m');
elseif(hObject==handles.cinco)
set(handles.h,'LineStyle','*','Color','y');
elseif(hObject==handles.seis)
set(handles.h,'LineStyle','s','Color','k');
elseif(hObject==handles.siete)
set(handles.h,'LineStyle','d','Color',[1 0.5 0.5]);
elseif(hObject==handles.ocho)
set(handles.h,'LineStyle','v','Color',[1 0.5 1]);elseif(hObject==handles.nueve)
set(handles.h,'LineStyle','^','Color',[0.5 0 0]);
elseif(hObject==handles.diez)
set(handles.h,'LineStyle','>','Color',[0.5 0 1]);
elseif(hObject==handles.once)
set(handles.h,'LineStyle','<','Color',[0.5 1 0]);
elseif(hObject==handles.doce)
set(handles.h,'LineStyle','p','Color',[0.5 1 1]);
else
set(handles.h,'LineStyle','h','Color',[0.52 0 0]);
endLa función del slider queda con el siguiente código:
handles.slider1=get(hObject,'Value');
handles.slider1= handles.slider1*10;
if handles.slider1==0
handles.slider1=handles.slider1+0.01;
end
set(handles.h,'LineWidth',handles.slider1);
set(handles.edit1,'String',handles.slider1);
guidata(hObject,handles);
El valor por defecto del slider va de 0 a 1. Por esta razón se lo multiplicapor 10. Como el valor capturado del slider se usa para el ancho de línea de la gráfica, este valor no deber ser cero y es por eso que usamos una sentencia if, para que cuando el valor ingresado sea cero, inmediatamente se le sume 0.01. La sentencia set(handles.h,'LineWidth',handles.slider1) modifica el valor del ancho de línea de la señal y la sentencia set(handles.edit1,'String',handles.slider1)...
Regístrate para leer el documento completo.