matlab制作科学计算器,MATLAB科学计算器源代码

时间: 2023-07-25 10:03:53 浏览: 76
以下是MATLAB科学计算器的源代码,你可以根据需要进行修改和完善: ```matlab % 创建计算器窗口 f = figure('Visible','off','Position',[360,500,400,300]); % 创建数学函数按钮 sin_btn = uicontrol('Style','pushbutton','String','sin',... 'Position',[315,220,70,25],'Callback',@sin_callback); cos_btn = uicontrol('Style','pushbutton','String','cos',... 'Position',[315,190,70,25],'Callback',@cos_callback); tan_btn = uicontrol('Style','pushbutton','String','tan',... 'Position',[315,160,70,25],'Callback',@tan_callback); sqrt_btn = uicontrol('Style','pushbutton','String','sqrt',... 'Position',[315,130,70,25],'Callback',@sqrt_callback); % 创建数字按钮 num_btn = cell(1,10); for i = 1:10 num_btn{i} = uicontrol('Style','pushbutton','String',i-1,... 'Position',[(i-1-3*fix((i-1)/3))*75+15,60+60*fix((i-1)/3),60,50],'Callback',@num_callback); end % 创建操作符按钮 add_btn = uicontrol('Style','pushbutton','String','+',... 'Position',[225,190,70,25],'Callback',@add_callback); sub_btn = uicontrol('Style','pushbutton','String','-',... 'Position',[225,160,70,25],'Callback',@sub_callback); mul_btn = uicontrol('Style','pushbutton','String','*',... 'Position',[225,130,70,25],'Callback',@mul_callback); div_btn = uicontrol('Style','pushbutton','String','/',... 'Position',[225,100,70,25],'Callback',@div_callback); dot_btn = uicontrol('Style','pushbutton','String','.',... 'Position',[150,100,70,25],'Callback',@dot_callback); eq_btn = uicontrol('Style','pushbutton','String','=',... 'Position',[315,100,70,25],'Callback',@eq_callback); clear_btn = uicontrol('Style','pushbutton','String','clear',... 'Position',[225,220,70,25],'Callback',@clear_callback); % 创建文本框显示计算结果 result_text = uicontrol('Style','text','String','',... 'Position',[15,250,370,40],'HorizontalAlignment','right'); % 初始化计算器 num1 = ''; num2 = ''; op = ''; result = ''; % 显示计算器窗口 f.Visible = 'on'; % 数字按钮回调函数 function num_callback(hObject,eventdata) global num1 num2 op result if isempty(op) num1 = [num1 hObject.String]; result = num1; else num2 = [num2 hObject.String]; result = [num1 ' ' op ' ' num2]; end result_text.String = result; end % 点号按钮回调函数 function dot_callback(hObject,eventdata) global num1 num2 op result if isempty(op) if isempty(num1) num1 = '0.'; elseif ~contains(num1,'.') num1 = [num1 '.']; end result = num1; else if isempty(num2) num2 = '0.'; elseif ~contains(num2,'.') num2 = [num2 '.']; end result = [num1 ' ' op ' ' num2]; end result_text.String = result; end % 加号按钮回调函数 function add_callback(hObject,eventdata) global num1 num2 op result op = '+'; result = [num1 ' ' op ' ']; result_text.String = result; end % 减号按钮回调函数 function sub_callback(hObject,eventdata) global num1 num2 op result op = '-'; result = [num1 ' ' op ' ']; result_text.String = result; end % 乘号按钮回调函数 function mul_callback(hObject,eventdata) global num1 num2 op result op = '*'; result = [num1 ' ' op ' ']; result_text.String = result; end % 除号按钮回调函数 function div_callback(hObject,eventdata) global num1 num2 op result op = '/'; result = [num1 ' ' op ' ']; result_text.String = result; end % 等号按钮回调函数 function eq_callback(hObject,eventdata) global num1 num2 op result if isempty(num1) || isempty(num2) || isempty(op) return; end switch op case '+' result = num2str(str2double(num1) + str2double(num2)); case '-' result = num2str(str2double(num1) - str2double(num2)); case '*' result = num2str(str2double(num1) * str2double(num2)); case '/' if str2double(num2) == 0 result = 'Error'; else result = num2str(str2double(num1) / str2double(num2)); end end num1 = result; num2 = ''; op = ''; result_text.String = result; end % 清空按钮回调函数 function clear_callback(hObject,eventdata) global num1 num2 op result num1 = ''; num2 = ''; op = ''; result = ''; result_text.String = result; end % sin按钮回调函数 function sin_callback(hObject,eventdata) global num1 num2 op result if isempty(op) result = num2str(sin(str2double(num1))); num1 = result; else result = num2str(sin(str2double(num2))); num2 = result; end result_text.String = result; end % cos按钮回调函数 function cos_callback(hObject,eventdata) global num1 num2 op result if isempty(op) result = num2str(cos(str2double(num1))); num1 = result; else result = num2str(cos(str2double(num2))); num2 = result; end result_text.String = result; end % tan按钮回调函数 function tan_callback(hObject,eventdata) global num1 num2 op result if isempty(op) result = num2str(tan(str2double(num1))); num1 = result; else result = num2str(tan(str2double(num2))); num2 = result; end result_text.String = result; end % sqrt按钮回调函数 function sqrt_callback(hObject,eventdata) global num1 num2 op result if isempty(op) result = num2str(sqrt(str2double(num1))); num1 = result; else result = num2str(sqrt(str2double(num2))); num2 = result; end result_text.String = result; end ``` 以上是MATLAB科学计算器的源代码,包括各种按钮的回调函数,你可以根据需要进行修改和完善。

相关推荐

最新推荐

recommend-type

基于MATLAB-GUI的简易计算器设计.docx

基于MATLAB-GUI的简易计算器设计,基于MATLAB GUI的计算器设计是利用GUIDE创建图形用户界面进行计算器设计。设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。通过调整控件和...
recommend-type

基于MATLAB GUI的简单计算器仿真

基于MATLAB GUI的简单计算器仿真课程设计,包含文字以及所有代码,详细说明了如何仿真一个小型简单计算器,有需要的可以下载
recommend-type

MATLAB图像处理+常用源代码

这是一个MATLAB进行图像处理的文档,里面有所有的源代码。希望能给大家以参考。
recommend-type

MATLAB实验六实验报告

Matlab程序设计语言是电子信息类和电气信息类的重要基础课程,而相应的实验是其中的关键环节。但单纯的传统实验存在内容、步骤相对固定等局限性。本项目立足于计算视觉与多位信号处理实验室,依托于实验室各位老师的...
recommend-type

EMD分解HHT变化matlab源代码

信号经过EMD分解后求出HHT变化的功率谱的详细说明,并且附有matlab源代码
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

解释这行代码 c = ((double)rand() / RAND_MAX) * (a + b - fabs(a - b)) + fabs(a - b);

这行代码是用于生成 a 和 b 之间的随机数。首先,它使用 rand() 函数生成一个 [0,1) 之间的随机小数,然后将这个小数乘以 a、b 范围内的差值,再加上 a 和 b 中的较小值。这可以确保生成的随机数大于等于 a,小于等于 b,而且不会因为 a 和 b 之间的差距过大而导致难以生成足够多的随机数。最后,使用 fabs() 函数来确保计算结果是正数。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。