simple calculator using GUI
Mostrar comentarios más antiguos
I tried to make a simple calculator with GUI.
For that purposes i want to take the input as string.then convert this string into number ,and then perfom the operation.
For instance i would like to take input like
("5+6/3")
and then using str2num i want to perform that operation.
In all button i use almost the same code like ( here i show the code for button 1 and divison sign.)
% --- Executes on button press in division.
function division_Callback(hObject, eventdata, handles)
% hObject handle to division (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
s=get(handles.screen,'string');
set(handles.screen,'string',strcat(s,'/'));
% --- Executes on button press in button1.
function button1_Callback(hObject, eventdata, handles)
% hObject handle to button1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
s=get(handles.screen,'string');
set(handles.screen,'string',strcat(s,'1'));
In equal button
% --- Executes on button press in equal.
function equal_Callback(hObject, eventdata, handles)
% hObject handle to equal (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
p = str2num(s); % it will convert the string in mathmatical expression then perform the operation
set(handles.screen,'string',num2str(p));

It didn't show the expected output.
What to change in equal Button?
Thanks in Advance.
Respuesta aceptada
Más respuestas (3)
Ngo Nguyen
el 19 de Abr. de 2021
1 voto
I think you should use the function: eval
2 comentarios
Md. Ashikur Rahman Any
el 19 de Abr. de 2021
Ngo Nguyen
el 19 de Abr. de 2021
At first, check your equal_Callback, what is s?
When you start a new function, the parameter "s" is no longer exist?
What kind of the error message did you get?
Md. Ashikur Rahman Any
el 19 de Abr. de 2021
4 comentarios
Ngo Nguyen
el 19 de Abr. de 2021
Please check parameter s in your equal function. What is s?
Md. Ashikur Rahman Any
el 19 de Abr. de 2021
Md. Ashikur Rahman Any
el 19 de Abr. de 2021
Md. Ashikur Rahman Any
el 19 de Abr. de 2021
Md. Ashikur Rahman Any
el 21 de Abr. de 2021
1 comentario
Rik
el 21 de Abr. de 2021
You should not rely on global variables. You have the handles struct right there to share data between callbacks.
You should also consider storing handles.screen.String separately (and restore it every callback that changes it). That way you can avoid malicious input.
Categorías
Más información sobre Graphics Object Properties en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

