Sunteți pe pagina 1din 9

RESUMEN DE COMANDOS MATLAB GUI

1. Iniciar la creación de una interfaz de usuario

- guide: abre la ventana de inicio de un proyecto de interfaz de usuario.

Una vez creada la interfaz de usuario, se recomienda guardar el proyecto en la carpeta


de trabajo de preferencia. En dicha carpeta se crearán dos archivos con el nombre del
proyecto; uno con extensión *.m donde se codificarán las funcionalidades de la interfaz
de usuario, y el otro con extensión *.fig donde se muestra la configuración física de la
interfaz de usuario propiamente dicha.

Todo archivo de extensión *.m posee inicialmente 3 funciones, de las cuales, en la


segunda función con denominación ***_OpeningFcn(hObject. –eventdata, handles,
varargin), se colocan todas las sentencias de código que se desean ejecutar antes que la
interfaz de usuario se vuelva visible.

Página 1|9
AUTOR: EVELYN RAMOS VILLASANA
El archivo de extensión *.fig posee los siguientes componentes:

Barra de herramientas
Botones de control y edición

En este archivo, se construye directamente el esquema final que tendrá la interfaz de


usuario. Los botones de control o edición que nos permiten dicha creación son los
siguientes: Select, Push Button, Slider, Radio Button, Check Box, Edit Text, Static Text,
Pop-up Menu, Listbox, Toggle Button, Table, Axes, Panel, Button Group, Active X
Control.
Es necesario mencionar que por cada elemento que se añada a la interfaz de usuario, se
creará dentro del archivo *.m, una función relacionada a cada uno de esos elementos.

Página 2|9
AUTOR: EVELYN RAMOS VILLASANA
Por lo tanto, para un buen manejo y control de la interfaz de usuario, es recomendable
asignar a cada elemento el nombre de la variable con el que trabajará. Por ejemplo, en
la siguiente figura se añade a la interfaz de usuario un botón Edit Text, el cual recibirá
dentro de la interfaz de usuario, valores de caudales, por lo tanto, es recomendable
asignar a dicho botón el nombre de caudal mediante el uso de la propiedad “Tag”. La
asignación de nombres a los elementos de la interfaz de usuario permiten realizar una
programación más fácil y ordenada dentro del archivo *.m.

Debe mencionarse que la ventana de propiedades de cada elemento del GUI se abre al
hacer doble clic sobre dicho elemento. Entre las propiedades más importantes destacan
los siguientes: String, propiedad donde se escribe el texto que será visible al usuario;
Tag, propiedad donde se asigna un nombre al elemento; Pisition, propiedad donde se
administra el tamaño y ubicación del elemento; Font Name, propiedad donde se
selecciona el tipo de letra del elemento; Font Size, propiedad donde se selecciona el
tamaño de letra del elemento; y HorizontalAlignment, propiedad donde se define la
alineación del contenido.
Por último, también resulta útil la asignación de un nombre a la misma interfaz de
usuario, esto en el caso cuando se requiera trabajar con más de dos interfaces de
usuario. Por ejemplo, en la siguiente figura se muestra que a la interfaz de usuario
mediante su propiedad Tag se le asigna el nombre “figure_main”.
-

Página 3|9
AUTOR: EVELYN RAMOS VILLASANA
2. Programación de la interfaz de usuario

A medida que se construya la interfaz de usuario, se puede ir programando dicha interfaz


en el archivo *.m. Los comandos más comunes y su estructura de codificación en la
programación se muestran a continuación:

2.1. Comando para extraer el valor ingresado en el GUI y llevarlo a una variable en
el archivo *.m.
- diameter_to_use =
str2double(get(handles.diameter_to_use,'String')); %[m]

La sola sentencia get() permite extraer el texto escrito en el elemento


“diameter_to_use” y llevarlo a la programación de la interfaz, sin embargo,
al ser este un texto resulta imposible poder trabajar operaciones
matemáticas. Por lo tanto, es necesario utilizar el comando str2double para
poder convertir dicho texto en un valor numérico que sea almacenado en
una variable con la cual posteriormente se realizarán las operaciones de
cálculo.
La estructura get(), extrae el texto ingresado en el elemento
“diameter_to_use” del GUI, luego lo convierte a un valor numérico y
finalmente lo asocia a la variable “diameter_to_use” del archivo *.m.

2.2. Comando para establecer en el GUI una variable calculada en el archivo *.m
- set(handles.velocity_to_use,'String',velocity_to_use);

En este caso, no es necesario realizar una conversión del valor numérico


calculado en la variable “velocity_to_use” a texto para mostrarlo en el
elemento velocity_to_use del GUI.

Página 4|9
AUTOR: EVELYN RAMOS VILLASANA
2.3. Comando para guardar y recuperar variables calculadas en el archivo *.m.

Todas las variables que se creen o asignen dentro de una de las funciones del
archivo *.m solo pueden ser utilizadas dentro de dicha función a menos que
sean guardadas con el siguiente comando:
- setappdata(handles.figure_main,'area',area); %GUARDA EL
VALOR DE AREA

En caso se requiera recuperar las variables guardadas en una función para


utilizarlas en otras funciones del archivo *.m es recomendable utilizar el
siguiente comando:
- REFERENCE_01 =
getappdata(handles.figure_main,'REFERENCE_01');

2.4. Estructura para definir y ejecutar una función dentro de una función del archivo
*.m.
Es recomendable programar los cálculos matemáticos y lógicos en el archivo *m.
mediante la definición y ejecución de funciones. La estructura para definir una
función dentro del archivo *.m es como sigue:
- [velocity_to_use, area, hvp, S] =
function_hydraulic_characteristics(discharge,
diameter_to_use, n_manning);

Las variables escritas dentro de los paréntesis son aquellas que han sido
asignadas a algún valor dentro del archivo *.m y que son necesarias para los
cálculos que programen dentro de la función
“function_hydraulic_characteristics”. Esta nueva función
“function_hydraulic_characteristics” debe ser programada en otro archivo de
extensión *.m. La estructura para definir esta función se muestra a
continuación:

- function[velocity_to_use, area, hvp, S] =


function_hydraulic_characteristics(discharge,
diameter_to_use, n_manning)

velocity_to_use = round(discharge * 4
/(pi()*diameter_to_use^2),1); %[m/s]

area = pi() * diameter_to_use ^ 2 / 4; %[m2]

%CARGA DE VELOCIDAD
hvp = velocity_to_use ^ 2 / (2 * 9.81); %[m]

perimetro_mojado = pi() * diameter_to_use; %[m]

radio_hidraulico = area / perimetro_mojado; %[m]

%MANNING'S SLOPE
S =(discharge * n_manning / (area * radio_hidraulico ^
(2/3))) ^ 2 ; %[%]

end

Página 5|9
AUTOR: EVELYN RAMOS VILLASANA
Dentro de las sentencias Function y End, se programa los cálculos matemáticos
y lógicos.

2.5. Estructura para llamar a otra interfaz de usuario


A veces resulta necesario relacionar la interfaz de usuario creada inicialmente
con otra interfaz. Para ello es recomendable realizar esta programación
mediante el uso del botón Push Button. En la correspondiente función de dicho
botón en el archivo *.m, se llama a la otra interfaz de usuario por el nombre con
el fue guardado dicho archivo “guide_reference_01” mediante el uso de los
siguientes comandos.
- function reference_1_Callback(hObject, eventdata,
handles)
%SHOWING REFERENCE 01 GUIDE
guide_reference_01

Si se requiere recuperar el valor de una variable guardada en el GUI inicial


“figure_main” se requiere utilizar dentro del archivo *.m de la nueva interfaz, la
siguiente codificación:

- Guide_main = findobj('Tag','figure_main')
REFERENCE_01 = getappdata(Guide_main,'REFERENCE_01');

2.6. Comando para mostrar imágenes


Las imágenes pueden ser mostradas mediante el uso del botón Axes. La
estructura de la codificación se muestra a continuación:

%SHOWING REFERENCE
- axes(handles.axes1);

Página 6|9
AUTOR: EVELYN RAMOS VILLASANA
[scheme_1,map_1]=imread(REFERENCE_01);
image(scheme_1), axis off;

En dicho código la variable “REFERENCE_01” hace referencia a la ruta dentro del


computador donde se encuentra guardada dicha imagen.

2.7. Comando para utilizar sentencias lógicas

- if delta_level_transition <= Pmax


%message_criterio = 1 --> pasa;
message_criterio(1,2) = 1;
P_inlet = delta_level_transition;
else
%message_criterio = 2 --> no pasa;
message_criterio(1,2) = 2;
P_inlet = Pmax;
end

2.8. Comando para utilizar bucles

- for j=1:n_Rivers
if Golden_Rivers_filtro{j,3}{1,1}==1

[n_filas,col_2]=size(Golden_Rivers_filtro{j,1}{1,1});

fin_matrix_general=inicio_matrix_general+n_filas-1;

general_matrix_filtered(inicio_matrix_general:fin_matri
x_general,1)=Golden_Rivers_filtro{j,1}{1,1}(:,1);

general_matrix_filtered(inicio_matrix_general:fin_matri
x_general,2)=Golden_Rivers_filtro{j,1}{1,1}(:,2);

general_matrix_filtered(inicio_matrix_general:fin_matri
x_general,3)=Golden_Rivers_filtro{j,1}{1,1}(:,3);

general_matrix_filtered(inicio_matrix_general:fin_matri
x_general,4)=Golden_Rivers_filtro{j,1}{1,1}(:,4);

general_matrix_filtered(inicio_matrix_general:fin_matri
x_general,5)=Golden_Rivers_filtro{j,1}{1,1}(:,15);

inicio_matrix_general=fin_matrix_general+1;
else
%No se enlista los ríos que NO PASARON EL
FILTRO
end
end

2.9. Comando While

- while ENERGY == 0
contador = contador - 1;
if contador == Criterio
ENERGY == 1;
else
end
end

Página 7|9
AUTOR: EVELYN RAMOS VILLASANA
2.10. Comando Case

- switch true
case 0 <= H & H < Rango_de_Pmax/15
matrix_color(pp,1:3) = [0 0 255]/255;
case Rango_de_Pmax/15 <= H & H < Rango_de_Pmax/10
matrix_color(pp,1:3) = [100 149 237]/255;
end

2.11. Leer una base de datos excel

- [archivo_secciones,txt,raw] = xlsread(filename);

Donde la variable “filename” representa la ruta exacta con nombre y extensión


del archivo Excel que se quiere leer. En este caso se crearán 3 variables;
“archivo_secciones” contendrá todos los valores numéricos que posea el Excel,
“txt” contendrá todos las cadenas de texto que posea el Excel y “Raw” guardará
la combinación de los valores numéricos y cadenas de texto que posea el Excel
en una variable de tipo Cell.

2.12. Escribir una base de datos Excel

- xlswrite(complete_name,RESULTS_ID_PROJECTS_cells)

Donde “complete_name” contiene en una cadena de texto, la ruta exacta


(incluyendo nombre del archivo y extensión) donde se creará el nuevo archivo
Excel. La variable “RESULTS_ID_PROJECTS_cells” posee los valores de la matriz
que se escribirá en el nuevo archivo Excel.

2.13. Mostrar una matriz en una tabla


Los valores de una matriz guardados en una variable son mostrados en la
interfaz de usuario mediante el uso de la siguiente codificación:

- set(handles.table_criterios,'data',matrix_criterios_fin
al_cell);

Donde la variable “matrix_criterios_final_cell” contiene la matriz de resultados


que se desean mostrar en la interfaz de usuarios. El nombre asignado al
elemento Tabla del GUI es “table_criterios”, y la propiedad que permite mostrar
dicha matriz es la propiedad “data”.

Finalmente, después de haber construido y programado la interfaz, se realiza la ejecución


de ello haciendo clic en el botón Run Figure.

Página 8|9
AUTOR: EVELYN RAMOS VILLASANA
Una vez ejecutado el programa se ejecutará la interfaz de usuario mostrada en la siguiente
imagen.

En esta interfaz se podrá ingresar valores y presionar los botones que ejecutan cálculos con
dichos valores.

Página 9|9
AUTOR: EVELYN RAMOS VILLASANA

S-ar putea să vă placă și