1. Mini tutorial de matlab<br />APRENDIENDO A USAR LA INTERFAZ GRÁFICA DE USUARIO EN MATLAB<br /> <br />Por:<br />Ing. Alex Mendez<br />G U I D E<br />INTRODUCCIÓN<br />Para empezar que es un GUIDE bueno pues un 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<br />C++.o builder c++.<br />INICIO<br />¿y como iniciamos un GUIDE?<br />Para iniciar nuestro proyecto, lo podemos hacer abriendo el matlab y llendonos al panel superior a la pestaña GUIDE<br />Nos abrirá una ventana como esta<br />Seleccionamos la opción Blank GUI y damos ok y nos abrirá nuestro panel de ambiente grafico donde empezaremos a programar<br />Ahora dando doble click sobre cualquier elemento para abrir el inspector de proyectos<br />Ahora al hacer click 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 a nuestro 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<br />que estamos editando.<br />Por ejemplo, al ejecutar View Callbacks>>Callbacks en el Push Button, nos<br />ubicaremos en la parte del programa:<br />function pushbutton1_Callback(hObject, eventdata, handles)<br />%hObject handle to pushbutton1 (see GCBO)<br />%eventdata reserved-to be defined in a future version of MATLAB<br />%handles structure with handles and user data (see GUIDATA)<br />FUNCIONAMIENTO DE UNA APLICACIÓN GUI<br />Una aplicación GUIDE consta de dos archivos: .m y .fig. El archivo .m es el que<br />contiene el código con las correspondencias de los botones de control de la interfaz y el archivo .fig contiene los elementos gráficos como botones y edits.<br />Cada vez que se adicione un nuevo elemento en la interfaz gráfica, se genera<br />automáticamente código en el archivo .m.<br />Para ejecutar una Interfaz Gráfica, si la hemos etiquetado con el nombre<br />alex.fig, simplemente ejecutamos en la ventana de comandos >> alex. O haciendo click derecho en el m-file y seleccionando la opción RUN.<br />Manejo de datos<br />handles.output = hObject<br />handles, es nuestro identificador a los datos de la aplicación. Esta definición de identificador es salvada con la siguiente instrucción:<br />guidata(hObject, handles);<br />guidata, es la sentencia para salvar los datos de la aplicación.<br />Aviso: 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:<br />guidata(hObject,handles);<br />Esta sentencia nos garantiza que cualquier cambio o asignación de propiedades o variables quede almacenado.<br />GET Y SET<br />La asignación u obtención de valores de los componentes se realiza mediante las<br />sentencias get y set. Por ejemplo si queremos que la variable utpl tenga el valor del edit1 escribimos:<br />utpl= get(handles.slider1,'Value')<br />podemos notar que siempre se obtienen los datos a través de los identificadores handles.<br />Para asignar el valor a la variable utpl al statictext etiquetada como text1<br />escribimos:<br />set(handles.text1,'String',utpl)<br />BUENO SE DICE QUE LA MAJOR FORMA DE APRENDER ES LA PRACTICA PUES MANOS A LA OBRA REALIZAREMOS UN PROGRAMA MUY SENCILLO EL UTIL Y POPULAR SUMADOR<br />Empezamos abriendo matlab y haciendo las instrucciones anteriormente dichas hasta llegar aquí:<br />Ahora jalamos 3 edit text (2 edit serán para alojar datos por el usuario y el tercero para mostrar resultados) y un push button donde ira el siguiente código o todo el código para hacer las operaciones.<br />Código:<br />function pushbutton1_Callback(hObject, eventdata, handles)<br />(debajo de la function del boton ira este codigo)<br />A= str2double(get(handles.edit1, 'String'));<br />B= str2double(get(handles.edit2, 'String'));<br />(aqui como vemos se extrae a las variables el codigo ingresado de los edit text y el str2double lo transforma de string a format double o numero, como vez se usa el handles para etiquetar los edit )<br />suma=A+B;<br />(aquí se efectua la operacion)<br />set(handles.text3,'String',suma);<br />(aqui usamos el )<br /> Y ADIVINEN QUE… NOS QUEDARA ALGO ASI<br />Con este programa se pretende mostrar la ejecución de cálculos con el simple hecho de ingresar datos en un edit-text, con un push-button.<br /> <br />.EXE<br />Ahora si tienen algún profesor que les quiera complicar la existencia jejeje y les deje sus programas ejecutables pues eh aquí la solución y ya luego me ponen un altar jejeje.<br />Paso uno cuando termines con tu proyecto vete a la parte de comand window del matlab y luego introduce esto…<br />mcc -m nombredeproyecto.m nombre de proyecto .fig<br />(recuerda que al crear nuestro proyecto se crean 2 archivos el .m y el . fig)<br />Ahora solo deja que se ejecute unos minutos esto y en tu carpeta del proyecto comenzaran a crearse archivos para fianalizar con el .exe ojo la primera vez matlab te pedirá que eligas un compilador tu elige el primero el default.<br />MCRInstaller<br />Ahora ya tienes tu .exe pero ahora resulta que tu profe te odia y kiere que se ejecute en maquinas sin matlab pues que crees otra vez te salve la vida luego me agradeces doble… esto es simple solo sigue esto …<br />Ve a archivos de programa y entra a la carpeta de matlab.<br />Metete a la carpeta de archivos<br />Luego a la carpeta toolbox<br />Después a compiler<br />Luego a deploy<br />Y a win 32 ahí se encuentran 3 elementos copialos y pegalos en la carpeta donde tienes tus programas …<br />Ahora solo cada vez que kieras usar tus programas en una maquina sin matlab da doble click en el MCRInstaller y esto te instalara como si fuera el instalador de tus programas aunque en realidad instala las .dll para que tus programas puedan ejecutarse.<br />Pues bien eso es todo dudas o comentarios al correo <br />reddemon_17@hotmail.com<br />Graciassss!!!!!!!!!!<br />