Tutorial de matlab usando la función guide: Creación de calculadora con las funciones de suma, resta, multiplicación y divición.
Abrir Matlab y escribir:
>> guide
pulsar enter
Añadir un button group, 4 radio button dentro del button group, cambiar el identificador por default de los elementos agregados, sugiero las siguientes etiquetas:

tag
Suma = rbtSuma
Resta = rbtResta
Multiplicación = rbtMult
Divición = rbtDiv
Añadir un push button, 2 edit text, y las static text necesarias.
Cambiar el identificador por default del los elementos agregados. Se sugiere lo siguiente:
tag
botón "Calcular" = pbtCalcular
Edit text 1 = edtVal1
Edit text 2 = edtVal2
Guardar el proyecto, para que genere el código .m, despues de esto agregar callback que son funciones o eventos para los elementos.
Elemento 1 Suma: el callback suma debe quedar como se muestra en la imagen siguiente:
% --- Executes on button press in rbtSuma.
function rbtSuma_Callback(hObject, eventdata, handles)
set(handles.rbtSuma,'value',1)
opcion1 = get(handles.rbtSuma,'value');
if opcion1 == 1
set(handles.rbtMult,'value',0)
get(handles.rbtMult,'value');
set(handles.rbtDiv,'value',0)
get(handles.rbtDiv,'value');
set(handles.rbtResta,'value',0)
get(handles.rbtResta,'value');
end
Resta
% --- Executes on button press in rbtResta.
function rbtResta_Callback(hObject, eventdata, handles)
set(handles.rbtResta,'value',1)
opcion2 = get(handles.rbtResta,'value');
if opcion2 == 1
set(handles.rbtMult,'value',0)
get(handles.rbtMult,'value');
set(handles.rbtSuma,'value',0)
get(handles.rbtSuma,'value');
set(handles.rbtDiv,'value',0)
get(handles.rbtDiv,'value');
end
Multiplicación
% --- Executes on button press in rbtMult.
function rbtMult_Callback(hObject, eventdata, handles)
set(handles.rbtMult,'value',1)
opcion3 = get(handles.rbtMult,'value');
if opcion3 == 1
set(handles.rbtDiv,'value',0)
get(handles.rbtDiv,'value');
set(handles.rbtSuma,'value',0)
get(handles.rbtSuma,'value');
set(handles.rbtResta,'value',0)
get(handles.rbtResta,'value');
end
Divición
% --- Executes on button press in rbtDiv.
function rbtDiv_Callback(hObject, eventdata, handles)
set(handles.rbtDiv,'value',1)
opcion4 = get(handles.rbtDiv,'value');
if opcion4 == 1
set(handles.rbtMult,'value',0)
get(handles.rbtMult,'value');
set(handles.rbtSuma,'value',0)
get(handles.rbtSuma,'value');
set(handles.rbtResta,'value',0)
get(handles.rbtResta,'value');
end
Callback del botón Calcular:
% --- Executes on button press in pbtCalcular.
function pbtCalcular_Callback(hObject, eventdata, handles)
A = handles.edtVal1;
B = handles.edtVal2;
opcion1 = get(handles.rbtSuma,'value');
opcion2 = get(handles.rbtResta,'value');
opcion3 = get(handles.rbtMult,'value');
opcion4 = get(handles.rbtDiv,'value');
if opcion1 == 1
S = B + A;
end
if opcion2 == 1
S = B - A;
end
if opcion3 == 1
S = B * A;
end
if opcion4 == 1
S = B / A;
end
set (handles.edtResultado,'String',S);
Callback para los edit text edtVal1 edtVal2
function edtVal2_Callback(hObject, eventdata, handles)
val1 = get(hObject,'String');
NewVal1 = str2double(val1);
handles.edtVal2 = NewVal1;
guidata(hObject,handles);
function edtVal1_Callback(hObject, eventdata, handles)
val1 = get(hObject,'String');
NewVal1 = str2double(val1);
handles.edtVal1 = NewVal1;
%handles.metricdata.edtVal1 = NewVal1;
guidata(hObject,handles);
Paso 1: crear la interfaz siguiente (use su propio diseño si desea)
Paso 2: etiquetar todos los atributos de la con los siguientes nombres
seleccionar el inspector en la barra de herramientas, para cambiar las propiedades, el nombre se cambia en tag, y la etiqueta en title o sting
Añadir un button group, 4 radio button dentro del button group, cambiar el identificador por default de los elementos agregados, sugiero las siguientes etiquetas:

tag
Suma = rbtSuma
Resta = rbtResta
Multiplicación = rbtMult
Divición = rbtDiv
Añadir un push button, 2 edit text, y las static text necesarias.
Cambiar el identificador por default del los elementos agregados. Se sugiere lo siguiente:
tag
botón "Calcular" = pbtCalcular
Edit text 1 = edtVal1
Edit text 2 = edtVal2
Paso 3: Asignar callback a cada elemento
Guardar el proyecto, para que genere el código .m, despues de esto agregar callback que son funciones o eventos para los elementos.
Elemento 1 Suma: el callback suma debe quedar como se muestra en la imagen siguiente:
% --- Executes on button press in rbtSuma.
function rbtSuma_Callback(hObject, eventdata, handles)
set(handles.rbtSuma,'value',1)
opcion1 = get(handles.rbtSuma,'value');
if opcion1 == 1
set(handles.rbtMult,'value',0)
get(handles.rbtMult,'value');
set(handles.rbtDiv,'value',0)
get(handles.rbtDiv,'value');
set(handles.rbtResta,'value',0)
get(handles.rbtResta,'value');
end
Resta
% --- Executes on button press in rbtResta.
function rbtResta_Callback(hObject, eventdata, handles)
set(handles.rbtResta,'value',1)
opcion2 = get(handles.rbtResta,'value');
if opcion2 == 1
set(handles.rbtMult,'value',0)
get(handles.rbtMult,'value');
set(handles.rbtSuma,'value',0)
get(handles.rbtSuma,'value');
set(handles.rbtDiv,'value',0)
get(handles.rbtDiv,'value');
end
Multiplicación
% --- Executes on button press in rbtMult.
function rbtMult_Callback(hObject, eventdata, handles)
set(handles.rbtMult,'value',1)
opcion3 = get(handles.rbtMult,'value');
if opcion3 == 1
set(handles.rbtDiv,'value',0)
get(handles.rbtDiv,'value');
set(handles.rbtSuma,'value',0)
get(handles.rbtSuma,'value');
set(handles.rbtResta,'value',0)
get(handles.rbtResta,'value');
end
Divición
% --- Executes on button press in rbtDiv.
function rbtDiv_Callback(hObject, eventdata, handles)
set(handles.rbtDiv,'value',1)
opcion4 = get(handles.rbtDiv,'value');
if opcion4 == 1
set(handles.rbtMult,'value',0)
get(handles.rbtMult,'value');
set(handles.rbtSuma,'value',0)
get(handles.rbtSuma,'value');
set(handles.rbtResta,'value',0)
get(handles.rbtResta,'value');
end
Callback del botón Calcular:
% --- Executes on button press in pbtCalcular.
function pbtCalcular_Callback(hObject, eventdata, handles)
A = handles.edtVal1;
B = handles.edtVal2;
opcion1 = get(handles.rbtSuma,'value');
opcion2 = get(handles.rbtResta,'value');
opcion3 = get(handles.rbtMult,'value');
opcion4 = get(handles.rbtDiv,'value');
if opcion1 == 1
S = B + A;
end
if opcion2 == 1
S = B - A;
end
if opcion3 == 1
S = B * A;
end
if opcion4 == 1
S = B / A;
end
set (handles.edtResultado,'String',S);
Es necesario generar el callback del unitgroup debes generar el siguiente código en archivo .m
function unitgroup_SelectionChangeFcn(hObject, eventdata, handles)
% hObject handle to the selected object in unitgroup
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
Callback para los edit text edtVal1 edtVal2
function edtVal2_Callback(hObject, eventdata, handles)
val1 = get(hObject,'String');
NewVal1 = str2double(val1);
handles.edtVal2 = NewVal1;
guidata(hObject,handles);
function edtVal1_Callback(hObject, eventdata, handles)
val1 = get(hObject,'String');
NewVal1 = str2double(val1);
handles.edtVal1 = NewVal1;
%handles.metricdata.edtVal1 = NewVal1;
guidata(hObject,handles);
Esto es todo viejo