hemos realizado hasta ahora, pertenecen al entorno de programación estructurada, pero MATLAB cuenta con una poderosa herramienta denominado APPDESIGNER, el cual es un un entorno de programación visual que utiliza los conceptos de la programación orientada a objetos (POO), para realizar y ejecutar programas que necesitan una interacción visual, entre el programa y el usuario. Herramienta APPDESIGNER en Matlab. El APPDESIGNER es una herramienta interactiva, para diseñar interface de usuario, en el cual se puede incluir objetos tales como: botones, edición de textos, edición de números, etiquetas, caja de opciones, etc. Cada objeto, tiene propiedades y métodos. Las propiedades son las características del objeto (color de letra, tipo de letra, posición del objeto, etc.) y los métodos son las acciones que el objeto realiza (cuando se hace clic, se ingres datos, etc.) El diseño de una ventana o formulario en APPDESIGNER, consta de dos partes: 1) Diseño de la ventana. 2) Programación. % Button pushed function: B1 function B1Pushed(app, event) d=app.D.Value; t=app.T.Value; v=d/t; app.V.Value=v; end
% Button pushed function: B2
function B2ButtonPushed(app, event) delete(app.UIFigure) %cierra ventana actual end % Button pushed function: CalcularButton function CalcularButtonPushed(app, event) d=str2double(app.EditField1.Value); t=str2double(app.EditField2.Value); v=d/t; app.EditField3.Value=num2str(v); end
% Button pushed function: SalirButton
function SalirButtonPushed(app, event) delete(app.UIFigure) %cierra la ventana actual end % Selection changed function: ButtonGroup1 function ButtonGroup1SelectionChanged(app, event) d1 = app.EditField1.Value; d2 = app.EditField2.Value; op = app.ButtonGroup1.SelectedObject; if (length(op.Text)==7) %Longitud de 'Adición’ R=d1+d2; app.Label1.Text='SUMA DE DOS NÚMEROS’; elseif (length(op.Text)==12) %Longitud de 'Substracción’ R=d1-d2; app.Label1.Text='RESTA DE DOS NÚMEROS’; elseif (length(op.Text)==14) %Longitud de 'Multiplicación’ R=d1*d2; app.Label1.Text='PRODUCTO DE DOS NÚMEROS’; else R=d1/d2; app.Label1.Text='COCIENTE DE DOS NÚMEROS’; end app.EditField3.Value=R; end % Value changed function: ListBox1 function ListBox1ValueChanged(app, event) d1 = app.EditField1.Value; d2 = app.EditField2.Value; op = app.ListBox1.Value; if (op==1) R=d1+d2; app.Label1.Text='SUMA DE DOS NÚMEROS’; elseif (op==2) R=d1-d2; app.Label1.Text='RESTA DE DOS NÚMEROS’; elseif (op==3) R=d1*d2; app.Label1.Text='PRODUCTO DE DOS NÚMEROS’; else R=d1/d2; app.Label1.Text='COCIENTE DE DOS NÚMEROS’; end app.EditField3.Value=R; end % Value changed function: ListBox1 function ListBox1ValueChanged(app, event) d1 = app.EditField1.Value; d2 = app.EditField2.Value; op = app.DropDown1.Value; if (op==1) R=d1+d2; app.Label1.Text='SUMA DE DOS NÚMEROS’; elseif (op==2) R=d1-d2; app.Label1.Text='RESTA DE DOS NÚMEROS’; elseif (op==3) R=d1*d2; app.Label1.Text='PRODUCTO DE DOS NÚMEROS’; else R=d1/d2; app.Label1.Text='COCIENTE DE DOS NÚMEROS’; end app.EditField3.Value=R; end % Button pushed function: Button1 function Button1Pushed(app, event) x=linspace(0,2*pi,50); y=sin(x); plot(app.UIAxes1,x,y,'-r','LineWidth',3); end
% Button pushed function: Button2
function Button2Pushed(app, event) x=linspace(0,2*pi,50); y=cos(x); plot(app.UIAxes1,x,y,':g','LineWidth',3); app.UIAxes1.XGrid='on’; app.UIAxes1.YGrid='on’; app.UIAxes1.XMinorGrid='on’; app.UIAxes1.YMinorGrid='on'; end % Button pushed function: Button1 function Button1Pushed(app, event) x=linspace(0,2*pi,50); y=sin(x); plot(app.UIAxes1,x,y,'-r','LineWidth',3); end
% Button pushed function: Button2
function Button2Pushed(app, event) x=linspace(0,2*pi,50); y=cos(x); plot(app.UIAxes1,x,y,':g','LineWidth',3); end
% Value changed function: CheckBox1
function CheckBox1ValueChanged(app, event) valor = app.CheckBox1.Value; if (valor==1) app.UIAxes1.XGrid='on’; app.UIAxes1.YGrid='on’; else app.UIAxes1.XGrid='off’; app.UIAxes1.YGrid='off’; end end
% Value changed function: CheckBox2
function CheckBox2ValueChanged(app, event) valor = app.CheckBox2.Value; if (valor==1) app.UIAxes1.XMinorGrid='on’; app.UIAxes1.YMinorGrid='on’; else app.UIAxes1.XMinorGrid='off’; app.UIAxes1.YMinorGrid='off’; end end % Value changing function: Slider1 function Slider1ValueChanging(app, event) a = event.Value; app.EditField1.Value=a; x=linspace(0,2*pi,100); y=a*sin(x); plot(app.UIAxes1,x,y,'-r','LineWidth',2); app.UIAxes1.XLim=[0,2*pi]; app.UIAxes1.YLim=[-12,12]; app.UIAxes1.XGrid='on’; app.UIAxes1.YGrid='on’; app.UIAxes1.XMinorGrid='on’; app.UIAxes1.YMinorGrid='on’; app.UIAxes1.XAxisLocation="origin"; app.UIAxes1.YAxisLocation="origin"; end % Value changing function: Spinner1 function Spinner1ValueChanging(app, event) a = event.Value; x=linspace(0,2*pi,100); y=a*sin(x); plot(app.UIAxes1,x,y,'-r','LineWidth',2); app.UIAxes1.XLim=[0,2*pi]; app.UIAxes1.YLim=[-12,12]; app.UIAxes1.XGrid='on’; app.UIAxes1.YGrid='on’; app.UIAxes1.XMinorGrid='on’; app.UIAxes1.YMinorGrid='on’; app.UIAxes1.XAxisLocation="origin"; app.UIAxes1.YAxisLocation="origin"; end % Code that executes after component creation function startupFcn(app, A) img=imread('focoOFF.png’); imshow(img,'Parent',app.UIAxes1); end
% Value changed function: State1
function State1ValueChanged(app, event) valor = app.State1.Value; if (valor==1) img=imread('focoON.png’); app.State1.Text='OFF’; else img=imread('focoOFF.png’); app.State1.Text='ON’; end imshow(img,'Parent',app.UIAxes1); end Similar al TOOGLE BUTTON