使用matlab代码编写一个计算器窗口
时间: 2023-08-14 22:05:19 浏览: 71
好的,以下是一个简单的 MATLAB 计算器窗口程序:
```matlab
function calculator
% 创建计算器窗口
f = figure('Visible','off','Position',[360,500,250,285]);
% 创建数字和操作按钮
num_buttons = 10;
num_btns = cell(num_buttons,1);
for ii = 1:num_buttons
num_btns{ii} = uicontrol('Style','pushbutton','String',num2str(ii-1),...
'Position',[((mod(ii-1,3))*70)+10,((floor((num_buttons-ii)/3))*50)+60,50,40],...
'Callback',@num_callback);
end
uicontrol('Style','pushbutton','String','C','Position',[10,220,50,40],...
'Callback',@clear_callback);
uicontrol('Style','pushbutton','String','=','Position',[150,220,50,40],...
'Callback',@equal_callback);
uicontrol('Style','pushbutton','String','+','Position',[150,170,50,40],...
'Callback',@add_callback);
uicontrol('Style','pushbutton','String','-','Position',[150,120,50,40],...
'Callback',@sub_callback);
uicontrol('Style','pushbutton','String','*','Position',[150,70,50,40],...
'Callback',@mul_callback);
uicontrol('Style','pushbutton','String','/','Position',[150,20,50,40],...
'Callback',@div_callback);
% 创建显示文本框
h_text = uicontrol('Style','text','String','0','Position',[10,260,190,25]);
% 显示窗口
f.Visible = 'on';
% 回调函数
function num_callback(source,eventdata)
curr_text = get(h_text,'String');
if strcmp(curr_text,'0')
set(h_text,'String',source.String);
else
set(h_text,'String',[curr_text source.String]);
end
end
function clear_callback(source,eventdata)
set(h_text,'String','0');
end
function equal_callback(source,eventdata)
curr_text = get(h_text,'String');
result = eval(curr_text);
set(h_text,'String',num2str(result));
end
function add_callback(source,eventdata)
curr_text = get(h_text,'String');
if strcmp(curr_text,'0')
return
end
set(h_text,'String',[curr_text '+']);
end
function sub_callback(source,eventdata)
curr_text = get(h_text,'String');
if strcmp(curr_text,'0')
return
end
set(h_text,'String',[curr_text '-']);
end
function mul_callback(source,eventdata)
curr_text = get(h_text,'String');
if strcmp(curr_text,'0')
return
end
set(h_text,'String',[curr_text '*']);
end
function div_callback(source,eventdata)
curr_text = get(h_text,'String');
if strcmp(curr_text,'0')
return
end
set(h_text,'String',[curr_text '/']);
end
end
```
运行该代码,将会弹出一个简单的计算器窗口。