电信12-1班 1206110109matlab简易计算器设计步骤与回调函数设计

合集下载

【matlab】MATLAB程序调试方法和过程

【matlab】MATLAB程序调试方法和过程

【matlab】MATLAB程序调试⽅法和过程3.8 MATLAB程序的调试和优化在MATLAB的程序调试过程中,不仅要求程序能够满⾜设计者的设计需求,⽽且还要求程序调试能够优化程序的性能,这样使得程序调试有时⽐程序设计更为复杂。

MATLAB提供了强⼤的程序调试功能,合理的运⽤MATLAB提供的程序调试⼯具尤其重要。

本节从MATLAB程序调试的⽅法和过程开始介绍,先让⽤户懂得合理运⽤MATLAB的程序调试功能,再总结MATLAB程序优化的⽅法,从⽽达到实现提⾼程序性能的⽬的。

3.8.1 MATLAB程序调试⽅法和过程(1)MATLAB是⼀种解释和执⾏同时进⾏的语⾔,这使得程序的调试变得相对便利,尤其是MATLAB具有良好的所见即所得特性。

在MATLAB程序调试过程中,可运⽤的除了⼀系列调试函数外,MATLAB还提供了专门的调试器,即M⽂件编译器,通过该M⽂件编译器和调试函数的共同使⽤,⽤户能够完成⼤部分的程序调试⼯作。

1.调试的基本任务程序调试(Debug)的基本任务就是要找到并去除程序中的错误。

程序的错误⼤致可以分为如下三类。

语法错误:由于程序员疏忽、输⼊不正确等原因⽽造成的代码违背程序语⾔规则的错误。

运⾏错误:由于对所求解问题的理解差异,导致程序流程出错或对程序本⾝的特性认识有误⽽造成的程序执⾏结果错误的情况。

异常:程序执⾏过程中由于不满⾜条件⽽造成的程序执⾏错误。

语法错误是初学者最常犯的错误,例如,变量或函数名拼写错误、缺少引号或括号等。

这类错误对于熟练掌握MATLAB的⽤户来说很容易避免,并且当MATLAB运⾏发现这些错误时会⽴即标识出这些错误,并向⽤户说明错误的类型以及在M⽂件中的位置,下⾯⽤⼀个例⼦来说明,在debug.m⽂件中输⼊如下内容:11 A=[123,456,789]; %定义矩阵A22 B=[1234,5678,9101112,13141516]; %定义矩阵B33 C=A*B %C为矩阵A和B相乘运⾏时则会出现如下错误:1. Error using ==> mtimes2. Inner matrix dimensions must agree.在上述矩阵四则运算的例⼦中,矩阵A和矩阵B的维数不满⾜运算前置条件,即两个矩阵的维数不同不能进⾏运算。

(word完整版)用MATLAB GUI设计简单计算器

(word完整版)用MATLAB GUI设计简单计算器

摘要基于MATLAB GUI的计算器设计是利用GUIDE创建图形用户界面进行计算器设计。

设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。

通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。

计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。

计算器实现的功能有:数字0~9和小数点的输入显示,平方、开平方和对数的输入显示。

进行四则运算、正弦计算、余弦计算、正切计算和余切计算,可以求阶乘、求百分数和求倒数。

可以进行括号及变量x与变量y的输入,结合坐标轴编辑框和曲线颜色编辑框实现函数的曲线绘制。

最后运行调试,实现基于MATLAB GUI的计算器的设计。

MATLAB GUI介绍MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂,主要面对科学计算、可视化以及交互式程设计的高科技计算环境。

MATLAB是将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。

MATLAB的图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。

MATLAB的图形用户界(GUI)是由光标,窗口,菜单、文字说明等对象构成一个用户界面。

基于Matlab的简易计算器

基于Matlab的简易计算器

工程设计报告设计题目:基于Matlab的简易计算器学院:专业:班级:学号:姓名:电子:日期:2015年12 月成绩:指导教师:. 西 安 电 子 科 技 大 学 电 子 工 程 学 院 工 程 设 计 任 务 书 学生 指导教师 职称 学生学号 专业 题目 基于Matlab 的简易计算器 任务与要求 任务如下: 利用MATLAB GUI 设计实现一个图形用户界面的计算器程序,实现: A.实现十进制数的加、减、乘、除、简单计算。

B. 科学计算函数,包括正弦、余弦、正切、余切、开方、指数等函数运行。

C. 有清除键,能清除操作。

要求如下: A .熟练掌握Matlab GUI 界面的设计与应用 B .最终计算器能够实现预期的相关功能开始日期 2015年 11月 日 完成日期 2016年1月 日课程设计所在单位本表格由电子工程学院网络信息中心 编辑录入 . …………………………装………………………………订………………………………线………………………………………………………………摘要基于Matlab GUI计算器设计时利用GUI的创建图像用户界面进行计算器设计。

设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。

通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。

计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。

计算器实现的功能有:数字0~9和小数点的输入显示,平方开方和对数的输入显示。

进行四则运算、正弦函数、余弦函数、正切函数以及反正弦函数、反余弦函数、反正切函数的计算等等。

最后运行调试,实现基于Matlab GUI的计算器的设计。

关键词:Matlab GUI 计算器AbstractsBased on Matlab GUI calculator design using the user interface to create images of GUI calculator design.Design calculator, mainly considering the ease of use, function calculators calculator interface and function of the common level of design.By adjusting the control and the layout of the text and color, make the interface simple and easy, rational layout, to achieve the effect of friendly interface.Calculator design used to get and set two main function for each attribute value transfer and control Settings.Calculator the functions are: 0 ~ 9, according to input and decimal square root and logarithm of input.Arithmetic, sine function and cosine function, tangent function and the arcsine function,arccosine function,the calculation of the arctangent function and so on.Finally running debugging, implementation design based on Matlab GUI calculator.Keywords: Matlab GUI calculator目录摘要 (4)Abstracts (4)目录 (6)第一章绪论 (8)1.MATLAB简介: (8)2.本文安排: (8)第二章GUI设计界面 (10)2.1打开GUI (11)2.2.添加按钮 (11)2.3.根据按钮的作用及视觉效果做一定的修改 (11)2.4.保存、添加功能函数 (12)2.4.1 数字键编写 (12)2.4.2 符号键的编写 (13)2.4.3 运算符“=”的编写 (13)2.4.4 按键“←back”的编写 (13)2.4.5 按键“清空”的编写 (14)2.4.6 按键“退出”的编写 (14)第三章计算器的使用和抽样检验 (15)3.1 除法运算(÷) (15)3.2 平方运算(^2) (15)3.3 函数cos (∏/3)的计算 (17)3.4 函数arcsin(∏/3)的计算 (17)3.5 以2为底的对数(log 2)的计算 (18)3.6 总结: (18)第四章特殊函数的源代码及总结 (19)函数代码及思路: (19)总结:问题及其优化 (21)第五章心得体会 (22)参考文献 (23)第一章绪论1.MATLAB简介:MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。

matlab中gui设计计算器原理及设计方案

matlab中gui设计计算器原理及设计方案

matlab中gui设计计算器原理及设计方案在MATLAB中设计GUI(图形用户界面)计算器的基本原理和设计方案如下:基本原理:MATLAB的GUI设计基于事件驱动模型。

这意味着当用户与界面交互(例如,点击按钮或输入文本)时,会触发一个或多个事件。

这些事件会调用相应的回调函数,执行相应的操作。

设计方案:1. 启动MATLAB并创建GUI:打开MATLAB。

使用guide命令启动GUI设计器。

2. 添加GUI组件:在GUI设计器中,添加需要的组件,如按钮(push button)、文本框(edit text)、标签(label)等。

3. 设置组件属性:为每个组件设置必要的属性,例如位置、大小、标签文本等。

4. 编写回调函数:双击每个组件,MATLAB会自动生成一个默认的回调函数。

根据需要修改这些函数,以实现所需的功能。

例如,对于按钮,当用户点击它时,可以编写代码来执行相应的计算。

5. 测试GUI:在设计过程中,经常测试GUI以确保其正常工作。

可以使用simulink中的模拟功能,或直接在MATLAB环境中测试。

6. 保存和运行:保存GUI文件。

在MATLAB命令窗口中输入文件名(不包括扩展名),然后按Enter运行GUI。

7. 调试和优化:根据测试结果,调整回调函数和组件属性,优化GUI的行为和外观。

8. 发布:一旦GUI满足所有需求,可以发布它以供其他人使用。

这通常涉及将GUI打包为一个可执行文件或应用程序包。

9. 维护和更新:随着软件的发展,可能需要定期维护和更新GUI。

这可能涉及添加新功能、修复错误或改进性能。

在整个过程中,熟悉MATLAB的GUI设计和编程技巧是非常重要的。

此外,由于GUI设计可能需要反复的测试和调整,因此耐心和细心也是必不可少的。

《MATLAB语言及仿真》计算器界面设计一

《MATLAB语言及仿真》计算器界面设计一

《MATLAB语言及仿真》计算器界面设计
一、主要工作原理(一级标题字体为小四宋)
1.1Matlab是一种高级的数学计算软件,它的原理是基于矩阵运算和数值计算的。

Matlab 的核心是一个解释器,它可以解释 Matlab语言中的命令,并将其转换为计算机可以理解的指令。

Matlab 的语言是一独高级的编程语言,它可以进行数值计算、数据分析、图形绘制等多种操作。

二、设计方案
2.1首先用MATLAB GUI 功能,在绘制一个静态文本框和一个文本编辑框,以及32个命令按钮,调整好各控件大小、颜色,整体布局如图所示:
2.2然后通过双击个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。

三、详细内容(包括图形、代码、文字描述等内容)
GUI设计界面:
1
算法设计:0——9以及小数点函数都一样,只是参数不同:
2
四则运算:
清屏键:
四、总结
通过本次的MATLAB课程设计,让我对MATLAB尤其是其GUI设计的功能有了进一步的了解,认识到了它功能的强大。

在MATLAB简单计算器的设计中,了解了关于MATLAB图形用户界面的部分控件的使用方法;利用MATLAB的GUI提供的很多实用的控件,方便用于设计属于自己的图形界面。

3。

根据matlab的计算器制作

根据matlab的计算器制作

基于MATLA啲计算器制作从入门到高级项目一、建立GUI框架1,双击MATLAB图标(本实例使用的是MATLAB R2014 ,打开软件H 22,打开GUI操作界面。

有两种方式:a、在命令行窗口输入guide,然后点击回车。

b、先点击新建图标,在选择‘图形用户界面’。

得到如下窗口:左上方有两个按钮:‘新建GUI',‘打开现有GUI' 对于‘新建GUI':下方的选择框内有你可以选择建立的GUI类型,对于初学者一般选择第一个。

下方是用来设置保存文件位置的。

对于‘打开现有GUI':初学者可能会在网上下载一些GUI源程序,使用‘打开现有GUI',再浏览到文件所在位置便可。

3、构建GUI框架:在选择新建GUI并且确定后,会弹出如下窗口:在窗口的左边会有很多选项,可以一个个拖动编辑框内;是不是发现这些选项发挥的作用刚好就是我们平常打开一个网页或者一个软件进行操作时的选择按钮。

比较常见的有:按钮、单选按钮、拖动条、弹出式菜单等。

看到这里细心地朋友就会发现,MATLAB GU似乎可以开发出大型软件哦,只要你有足够的想象力,当你从一个小白进阶到 一个高手之后,你可以做到的。

本次计算器制作只需要用到静态文本(或者是动态文本) 用来做显示器,按钮(用来操作)。

也可以添加一个面板 用来修饰。

这个属性框比较复杂,没有必要一个个说清楚(有兴趣的 可以自己研究,其实理解起来也挺简单的)本次计算器制作,我们只需要知道以下几个:在拖出的选项上双击,会得出该选项的属性栏,比如说 双击一个按钮选项,你会得到:劃灿I ■ ■E- Backqrowrdcolcwe 匚二1二Beir^De^eted! dt *也艺|M> doubleForTCAngl*[0 0^2 23®旬MHrruil*船5eriF> Fonduer F^nHlnit>1 Fcn^Wdi^lEiwmal4 出IForie-^rDLindCpIcr f ■HnrdlllcVr^jbpE * HlTeitE| HofiJCirl^lAl! fomentLWter■■LWirUpable3|*mbenTopL91.9匚3整 C-illbirlc□ippingi C -TMtHFcri C'EleteFcn EriacronIt RfirtwnMna 、BackgroundColor 取值为颜色的预定义字符或RGB数值;缺省(就是默认的意思)值为浅灰色;b 、 ForegroundColor 取值为颜色的预定义字符或 数值,该属性定义控件对象标题字符的颜色;缺省值 为黑色;c 、 String 取值为字符串矩阵或块数组,定义控件对 象标题或选项内容;d 、 FontName 取值为控件标题等字体的字库名; e 、 FontSize 取值为数值,控制字体大小;f 、 Tag 取值为字符串,定义了控件的标识值,在任何 程序中都可以通过这个标识值控制该控件对象;g 、 Style 取值可以是 pushbutton (缺省值), radiobutton, checkbox, edit, text, slider, frame, popupmenu 或 listbox ;项目二、简单加法器的制作1、框架准备 ‘加法器':使用静态文本,在 string 处将文本修改为 (加法器),在 fontsize 可修改字体大小,在 BackgroundColor 处可修改背景颜色。

Matlab课程设计报告(简单计算器)

Matlab课程设计报告(简单计算器)

1、设计目的运用MATLAB实现MATLAB的GUI程序设计。

2、题目分析2.1课程设计的基本要求:A. 熟悉和掌握MATLAB 程序设计方法。

B. 掌握MATLAB GUI程序设计。

2.2课程设计的内容要求利用MATLAB GUI设计实现一个图形用户界面的计算器程序,要求实现:A. 具有友好的用户图形界面。

实现十进制数的加、减、乘、除、乘方、取模等简单计算。

B. 科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。

C. 能够保存上次历史计算的答案,显示答案存储器中的内容。

D. 有清除键,能清除操作。

E. 独立存储器功能,使之可以直接输入存储器,可与存储器中的数值相加减。

能够清除独立存储器中的内容。

2.3题目分析本题目通过MATLAB的GUI程序设计较为简单,在GUI设计中主要用到三种控件,显示框用到文本编辑框(edit text),说明框用到静态文本框(Static text),数字以及运算等按钮用到命令按钮(push button)。

然后再通过各个按钮的回调函数,实现简单的计算功能。

3、总体设计首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及32个命令按钮,调整好各控件大小、颜色,整体布局如图所示:然后通过双击个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。

4、具体设计4.1 各功能界面设计GUI设计界面:4.2 各功能模块实现算法设计:A. 数字键设计:0—9以及小数点函数都一样,只是参数不同:global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','1') ;elsetextString =strcat(textString,'1');set(handles.text1,'String',textString)endjj=0;B. 四则运算函数:textString = get(handles.text1,'String');textString =strcat(textString,'+');set(handles.text1,'String',textString)C. 科学计算函数:textString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)set(handles.text1,'String','0.') ;elsea = strread(textString, '%f');a=sin(a);set(handles.text1,'String',a)end或textString=handles.text1;textString=sin(str2num(get(handles.text1,'String'))*pi/180);set(handles.text1,'String',num2str(textString))D. 退格键:通过取屏幕值,计算出其字符长度,然后取其前N-1项的值来实现退格:global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','0.') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.text1,'String',textString)endjj=0;E. 清屏键函数:set(handles.text1,'String','0.') ;F.右键函数:gtext('大家好;我是智能机器人-my name is seven');close(gcf);4.3 各模块实现结果A. 数字键:B. 四则运算函数:C. 科学计算函数:Sin45的计算结果=经过计算,这些结果均与实际结果相吻合,计算器的功能实现的较为完好。

基于MATLAB-GUI的简单计算器

基于MATLAB-GUI的简单计算器

基于MATLAB-GUI的简单计算器设计题目:计算器完成一个简单的计算器。

要求(但不限于):GUI上具有数字键盘输入区域,能够进行加、减、乘、除、三角函数等基础运算。

界面简洁、美观可能需要的控件:Push ButtonEdit TextPop-up Menu1 功能介绍本程序是一个简单的计算器程序,使用MATLAB软件编写完成。

主要具有加、减、乘、除、三角函数等基础运算,并通过GUI进行程序使用的交互。

程序交互界面如下:图1 程序的交互界面2 功能实现首先用MATLAB GUI功能,在绘制一个动态文本框和一个文本编辑框,以及25个命令按钮,调整好各控件大小、颜色,整体布局如图所示:备注:软件版本:MATLAB R2011b2.1 布局GUI1、打开MATLAB,在Guide中新建FIG文件2、然后双击“Blank GUI(Default)”或单击OK键出现GUI窗口3、添加按钮和动态文本框4、根据按钮的作用及视觉效果做一定的修改对按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在动态文本框下面。

最终设置的动态文本框为灰色,其他按钮均为蓝色。

5、保存、添加功能函数将做好的按钮及动态文本框保存后自动弹出Editor的M文本,然后对相应的pushbutton添加功能函数。

以下是相应按钮的功能函数。

(1)数字按键编写。

在function pushbutton1_Callback(hObject, eventdata, handles)下输入:global jja=get(handles.edit1,'String');if(strcmp(a,'0.')==1)&&(jj==0)set(handles.edit1,'String','0.')elsea=strcat(a,'0')set(handles.edit1,'String',a)endjj=0这是使用句柄handles指向对象edit1,并以字符串形式来存储数据文本框edit1的内容,并存储数个“0”,然后由set(handles.edit1,'String',a)在edit1中输出。

matlab简易计算器

matlab简易计算器

电子信息工程系实验报告课程名称:MATLAB语言Array实验项目名称:MATLAB图形用户界面设计实验时间:2010-5-8 班级:姓名:学号:实验目的: 1、熟悉MATLAB的主要控件使用方法。

2、熟悉MATLAB的GUI设计流程。

实验环境:硬件配置( Pentium(R) 4 CPU 2.40GHz,1GB内存)操作系统(Windows XP)编程软件:MATLAB7.0实验内容与结果:使用MATLAB的GUI接口设计一个简单的计算器。

效果图:程序源码部分函数及相关注释:%0~9数字键及小数点按钮代码范例%全局变量locaval用于存储用户输入的多位数值%全局变量gloval2用于存储待处理的第二位数值function pushbutton1_Callback(hObject, eventdata, handles)global locaval;a = get(handles.pushbutton1,'String');locaval=strcat(locaval,a);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);%运算符按钮处理“+、-、*、\”范例%全局变量flagnum存储运算符标志%全局变量global1用于储存第一个待处理数值function pushbutton10_Callback(hObject, eventdata, handles)a = get(handles.pushbutton10,'String');b = get(handles.text1,'String');set(handles.text1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=1;gloval1=b;guidata(hObject, handles);%取相反数按钮“+\-”代码%算法实现:用零减去文本框现在的值,再赋值给文本框function pushbutton14_Callback(hObject, eventdata, handles)global locaval;locaval=str2num(locaval);locaval=0-locaval;locaval=num2str(locaval);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% 等号按钮运算实现%根据flagnum运算标志用switch决策语句实现相应计算%需注意相应数据类型的转化function pushbutton17_Callback(hObject, eventdata, handles)global flagnumglobal gloval1global gloval2global locavallocaval=' ';gloval1=str2num(gloval1);gloval2=str2num(gloval2);case1=gloval1/gloval2;case2=gloval1*gloval2;case3=gloval1-gloval2;case4=gloval1+gloval2;case1=num2str(case1);case2=num2str(case2);case3=num2str(case3);case4=num2str(case4);switch flagnum;case 1set(handles.text1,'String',case1);case 2set(handles.text1,'String',case2);case 3set(handles.text1,'String',case3);case 4set(handles.text1,'String',case4);endguidata(hObject,handles)% BackSpace按钮函数%算法实现:MA TLAB是用矩阵存储数据的,相应的可以取文本框的前N-1实现其功能function pushbutton19_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)set(handles.text1,'String','0.') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.text1,'String',textString)endguidata(hObject,handles)%C清除按钮函数%把全局变量locaval清零function pushbutton20_Callback(hObject, eventdata, handles)global locavallocaval=' ';set(handles.text1,'String','0.');guidata(hObject,handles)%开平方函数function pushbutton22_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');textString=str2num(textString);textString=sqrt(textString);textString=num2str(textString);set(handles.text1,'String',textString);locaval=' ';guidata(hObject,handles)%取1/x函数function pushbutton24_Callback(hObject, eventdata, handles)global locavallocaval=str2num(locaval);locaval=1/locaval;set(handles.text1,'String',locaval);locaval=' ';guidata(hObject,handles)实验心得:!、通过MATLAB简单计算器的设计,初步了解了关于MATLAB图形用户界面的部分控件的使用方法。

matlab简易计算器12页

matlab简易计算器12页

电子信息工程系实验报告课程名称:MATLAB语言实验项目名称:MATLAB图形用户界面设计实验时间:2019-5-8 班级:姓名:学号:实验目的: 1、熟悉MATLAB的主要控件使用方法。

2、熟悉MATLAB的GUI设计流程。

实验环境:硬件配置( Pentium(R) 4 CPU 2.40GHz,1GB内存)操作系统(Windows XP)编程软件:MATLAB7.0实验内容与结果:使用MATLAB的GUI接口设计一个简单的计算器。

效果图:程序源码部分函数及相关注释:%0~9数字键及小数点按钮代码范例%全局变量locaval用于存储用户输入的多位数值%全局变量gloval2用于存储待处理的第二位数值function pushbutton1_Callback(hObject, eventdata, handles)global locaval;a = get(handles.pushbutton1,'String');locaval=strcat(locaval,a);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);%运算符按钮处理“+、-、*、\”范例%全局变量flagnum存储运算符标志%全局变量global1用于储存第一个待处理数值function pushbutton10_Callback(hObject, eventdata, handles)a = get(handles.pushbutton10,'String');b = get(handles.text1,'String');set(handles.text1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=1;gloval1=b;guidata(hObject, handles);%取相反数按钮“+\-”代码%算法实现:用零减去文本框现在的值,再赋值给文本框function pushbutton14_Callback(hObject, eventdata, handles) 成绩:指导教师(签名):global locaval;locaval=str2num(locaval);locaval=0-locaval;locaval=num2str(locaval);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% 等号按钮运算实现%根据flagnum运算标志用switch决策语句实现相应计算%需注意相应数据类型的转化function pushbutton17_Callback(hObject, eventdata, handles)global flagnumglobal gloval1global gloval2global locavallocaval=' ';gloval1=str2num(gloval1);gloval2=str2num(gloval2);case1=gloval1/gloval2;case2=gloval1*gloval2;case3=gloval1-gloval2;case4=gloval1+gloval2;case1=num2str(case1);case2=num2str(case2);case3=num2str(case3);case4=num2str(case4);switch flagnum;case 1set(handles.text1,'String',case1);case 2set(handles.text1,'String',case2);case 3set(handles.text1,'String',case3);case 4set(handles.text1,'String',case4);endguidata(hObject,handles)% BackSpace按钮函数%算法实现:MA TLAB是用矩阵存储数据的,相应的可以取文本框的前N-1实现其功能function pushbutton19_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)set(handles.text1,'String','0.') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.text1,'String',textString)endguidata(hObject,handles)%C清除按钮函数%把全局变量locaval清零function pushbutton20_Callback(hObject, eventdata, handles)global locavallocaval=' ';set(handles.text1,'String','0.');guidata(hObject,handles)%开平方函数function pushbutton22_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');textString=str2num(textString);textString=sqrt(textString);textString=num2str(textString);set(handles.text1,'String',textString);locaval=' ';guidata(hObject,handles)%取1/x函数function pushbutton24_Callback(hObject, eventdata, handles)global locavallocaval=str2num(locaval);locaval=1/locaval;set(handles.text1,'String',locaval);locaval=' ';guidata(hObject,handles)实验心得:!、通过MATLAB简单计算器的设计,初步了解了关于MATLAB图形用户界面的部分控件的使用方法。

MATLAB简易计算器

MATLAB简易计算器

实验二MATLAB计算器的设计一、设计任务用MATLAB GUI设计一个科学计算器,能够实现科学计算器的一般功能。

二、设计思路1)如图所示是WINDOWS10系统自带的科学型计算器的输入面板,现拟实现图中所显示的功能2)查阅相关资料发现MATLAB中有一个字符串求值函数eval(exression), 其功能是对exression进行计算并给出结果。

3)计算器功能实现输入——处理——输出三、设计内容一、GUI设计如图所示应用了按钮、静态文本框、动态文本框、坐标轴。

划分了不同的功能区、有一般科学计算区、矩阵计算区、函数求根区,绘图区。

二、函数设计1)输入处理函数功能是记录传入参数numChar的长度并储存在数组a中便于删除时删除相应长度的字符;和之前输入的字符串进行连接储存在str0中;对输入进行显示。

function dealChar(hObject,eventdata,handles,numChar)global str0;global k;global a;k=k+1;a(k)=length(numChar);str0 =strcat(str0,numChar);set(handles.disp1,'String',str0);2)一般输入的回调函数以数字0为例其他字符的回调函数都是类似的只是传入参数不同function num0_Callback(hObject, eventdata, handles)dealChar(hObject,eventdata,handles,'0');3)等于号的回调函数主要是用来处理输出结果function equal_Callback(hObject, eventdata, handles)global str0;global str1;global strT;strT = str0;str1 = num2str(eval(str0));str0=strcat(str0,'=');str0=strcat(str0,str1);set(handles.disp1,'String',str0);str0='';4)删除键的回调函数主要的思路是计算当前字符串的长度,调取上次输入字符串的长度,新字符串的长度=当前字符串的长度-上次输入字符串的长度。

matlab程序设计教程

matlab程序设计教程

matlab程序设计教程Matlab是一种强大的科学计算和数据分析工具,它提供了丰富的函数库和灵活的编程环境,使得用户可以方便地进行各种数学计算和数据处理。

本篇文章将为大家介绍Matlab程序设计的基本概念和操作步骤。

首先,我们需要了解Matlab的基本语法和编程元素。

Matlab 程序由语句和函数构成,语句是实现具体功能的基本单位,函数则是对语句进行封装和重用的机制。

Matlab采用类似于C 语言的结构化编程风格,包括顺序、选择和循环三种基本的控制结构。

此外,Matlab还支持向量化操作和矩阵运算,可以大大简化程序的编写和运算的复杂度。

其次,我们需要了解Matlab的开发环境和常用工具。

Matlab 提供了一个交互式的命令窗口,用户可以直接在命令行输入和执行Matlab语句。

除此之外,Matlab还提供了一个集成的开发环境,可以方便地编辑、调试和运行Matlab程序。

开发环境中还包括了各种工具箱,可以扩展Matlab的功能,如信号处理、图像处理、控制系统等。

接下来,我们将介绍Matlab程序的编写和调试过程。

在编写Matlab程序时,我们首先需要确定程序的功能和数据结构,然后选择合适的函数和语句来实现。

编写完成后,我们可以在命令窗口中运行程序,观察程序的输出结果是否满足预期。

如果发现程序出现了错误或不符合预期,我们可以使用Matlab 提供的调试工具来进行调试和排错。

调试工具包括断点、单步执行、变量监视等功能,可以帮助我们分析程序的执行过程和找到问题所在。

最后,我们需要注意Matlab程序的性能和代码优化。

Matlab是一种解释性语言,相对于编译型语言来说,其执行速度较慢。

为了提高程序的性能,我们可以使用向量化操作和矩阵运算来减少循环和临时变量的使用。

此外,我们还可以使用Matlab提供的性能分析工具来找出程序的瓶颈,并进行相应的算法优化和代码改进。

综上所述,Matlab程序设计是一项强大而灵活的任务,它能够帮助我们解决各种科学计算和数据分析问题。

用MATLAB制作简单计算器

用MATLAB制作简单计算器

用M A T L A B制作简单计算器Company number:【0089WT-8898YT-W8CCB-BUUT-202108】安阳工学院电子信息与电气工程学院《MATLAB编程与应用》课程大作业题目:用MATLAB制作简单计算器班级:电子信息工程(专升本)教师成绩由以下评分标准累计得出1、设计和仿真结果正确,分析清晰合理。

40%2、大作业报告重点突出、阐述清晰。

30%3、陈述清晰正确、有说服力,能够正确回答问题。

30%总分(上述成绩由教师填写)学生自评分值(该表格全部由学生填写)大作业总成绩(该表格“姓名”和“学号”由学生填写,“成绩”由教师填写)1.计任务: 1、熟悉MATLAB的主要控件使用方法。

2、熟悉MATLAB的GUI设计流程。

2.设计方案利用MATLAB GUI设计实现一个图形用户界面的计算器程序,要求实现:A.实现十进制数的加、减、乘、除、简单计算。

B. 科学计算函数,包括正弦、余弦、正切、(余切、开方、指数等函数运行。

C. 能够保存上次历史计算的答案,先是答案存储器中得内容。

D. 有清除键,能清除操作。

3.方案实施通过MATLAB的gui程序设计较为简单,在gui设计中主要用到两种控件,显示框用到文本编辑框(edit text),说明框用到静态文本框(Static text),数字以及运算等按钮用到命令按钮(push button)。

然后在通过各个按钮的回调函数,实现简单的计算功能。

4.方案施舍首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及24个命令按钮,调整好各控件大小、颜色,整体布局如图所示:图-1一、布局GUI1.打开Matlab,输入Guide 回车或者在工具栏上点击图标出现Guide 窗口:图–22.然后双击“Blank GUI(Default)”出现GUI窗口图-33.添加按钮图-44.根据按钮的作用及视觉效果做一定的修改把按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。

用MATLAB做一个计算器包括加减乘除平方清空等功能6页

用MATLAB做一个计算器包括加减乘除平方清空等功能6页

广西科技大学MATLAB课程设计说明书课题:设计简易计算器开发环境:MATLAB GUIDE作者:系别:专业:时间:实验目的:1、熟悉MATLAB的主要控件使用方法。

2、熟悉MATLAB的GUI设计流程。

实验环境:编程软件:MATLAB7.0实验内容与结果:使用MATLAB的GUI接口设计一个简单的计算器。

效果图:一、布局GUI。

1.打开Matlab,输入Guide 回车或者在工具栏上点击图标出现Guide 窗口:2.然后双击“Blank GUI(Default)”出现GUI窗口3.添加按钮4.根据按钮的作用及视觉效果做一定的修改把按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。

最终设置的静态文本框为白色,其他按钮均为分红色。

5.保存、添加功能函数把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。

以下是相应按钮的功能函数。

(1)数字按键编写。

在function pushbutton1_Callback(hObject, eventdata, handles)下输入:textString = get(handles.text1,'String');textString =strcat(textString,'0');set(handles.text1,'String',textString)这是使用句柄handles指向对象text1,并以字符串形式来存储数据文本框text1的内容,并存储数个“0”,然后由set(handles.text1,'String','textString'在text1中输出。

同理,分别在function pushbutton2~10_Callback(hObject, eventdata, handles)下给1~9数字按键下编写此类程序。

matlab制作的简易计算器

matlab制作的简易计算器

Matlab大作业——简易计算器一.实现的功能简易计算器能够计算简单的加减乘除,能够将计算过程和结果显示出来,并且能够清空和删除数字。

二.实现方式通过Matlab中的GUI接口设计这个简易计算器,通过GUI中的pushbottom设计输入数字的键和加减乘除等于等键,然后通过edit text设计显示屏。

更改回调函数实现相关的计算功能。

三.程序分析0~9数字键的代码设置%全局变量locaval用于存储用户输入的多位数值%全局变量gloval2用于存储待处理的第二位数值function pushbutton1_Callback(hObject, eventdata, handles)global locaval;a = get(handles.pushbutton1,'String');locaval=strcat(locaval,a);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);加减乘除键的代码设置%全局变量flagnum存储运算符标志%全局变量global1用于储存第一个待处理数值function pushbutton10_Callback(hObject, eventdata, handles)a = get(handles.pushbutton10,'String');b = get(handles.text1,'String');set(handles.text1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=1;gloval1=b;guidata(hObject, handles);等号键功能的实现%根据flagnum运算标志用switch决策语句实现相应计算%需注意相应数据类型的转化function pushbutton17_Callback(hObject, eventdata, handles) global flagnumglobal gloval1global gloval2global locavallocaval=' ';gloval1=str2num(gloval1);gloval2=str2num(gloval2);case1=gloval1/gloval2;case2=gloval1*gloval2;case3=gloval1-gloval2;case4=gloval1+gloval2;case1=num2str(case1);case2=num2str(case2);case3=num2str(case3);case4=num2str(case4);switch flagnum;case 1set(handles.text1,'String',case1);case 2set(handles.text1,'String',case2);case 3set(handles.text1,'String',case3);case 4set(handles.text1,'String',case4);endguidata(hObject,handles)Backspace键的代码设置%算法实现:MA TLAB是用矩阵存储数据的,相应的可以取文本框的前N-1实现其功能function pushbutton19_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)set(handles.text1,'String','0.') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.text1,'String',textString)endguidata(hObject,handles)清除按钮函数function pushbutton20_Callback(hObject, eventdata, handles)global locavallocaval=' ';set(handles.text1,'String','0.');guidata(hObject,handles)四.程序展示function varargout = jisuanji(varargin)% JISUANJI MATLAB code for jisuanji.fig% JISUANJI, by itself, creates a new JISUANJI or raises the existing% singleton*.%% H = JISUANJI returns the handle to a new JISUANJI or the handle to% the existing singleton*.%% JISUANJI('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in JISUANJI.M with the given input arguments.%% JISUANJI('Property','Value',...) creates a new JISUANJI or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before jisuanji_OpeningFcn gets called. An % unrecognized property name or invalid value makes propertyapplication% stop. All inputs are passed to jisuanji_OpeningFcn via varargin.%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above edit1 to modify the response to help jisuanji% Last Modified by GUIDE v2.5 04-Jun-2013 16:55:11% Begin initialization code - DO NOT EDITglobal gloval1;global gloval2;global flagnum;global locaval;gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @jisuanji_OpeningFcn, ...'gui_OutputFcn', @jisuanji_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before jisuanji is made visible.function jisuanji_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% varargin command line arguments to jisuanji (see VARARGIN)% Choose default command line output for jisuanjihandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes jisuanji wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = jisuanji_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} = handles.output;function edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit1 as edit1 % str2double(get(hObject,'String')) returns contents of edit1 as a doubleglobal locavallocaval=str2num(locaval);locaval=1/locaval;set(handles.edit1,'String',locaval);locaval=' ';guidata(hObject,handles)% --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcnscalled% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton3,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton4,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton5,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)a = get(handles.pushbutton6,'String');b = get(handles.edit1,'String');set(handles.edit1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=1;gloval1=b;guidata(hObject, handles);% --- Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton7,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton8.function pushbutton8_Callback(hObject, eventdata, handles)% hObject handle to pushbutton8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton8,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton9.function pushbutton9_Callback(hObject, eventdata, handles)% hObject handle to pushbutton9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton9,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton10.function pushbutton10_Callback(hObject, eventdata, handles)% hObject handle to pushbutton10 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)a = get(handles.pushbutton10,'String');b = get(handles.edit1,'String');set(handles.edit1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=2;gloval1=b;guidata(hObject, handles);% --- Executes on button press in pushbutton11.function pushbutton11_Callback(hObject, eventdata, handles)% hObject handle to pushbutton11 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton11,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton12.function pushbutton12_Callback(hObject, eventdata, handles)% hObject handle to pushbutton12 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton12,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton13.function pushbutton13_Callback(hObject, eventdata, handles)% hObject handle to pushbutton13 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton13,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton14.function pushbutton14_Callback(hObject, eventdata, handles)% hObject handle to pushbutton14 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)a = get(handles.pushbutton14,'String');b = get(handles.edit1,'String');set(handles.edit1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=3;gloval1=b;guidata(hObject, handles);% --- Executes on button press in pushbutton16.function pushbutton16_Callback(hObject, eventdata, handles)% hObject handle to pushbutton16 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)a = get(handles.pushbutton16,'String');b = get(handles.edit1,'String');set(handles.edit1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=4;gloval1=b;guidata(hObject, handles);% --- Executes on button press in pushbutton17.function pushbutton17_Callback(hObject, eventdata, handles)% hObject handle to pushbutton17 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locaval;a = get(handles.pushbutton17,'String');locaval=strcat(locaval,a);set(handles.edit1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% --- Executes on button press in pushbutton18.function pushbutton18_Callback(hObject, eventdata, handles)% hObject handle to pushbutton18 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global flagnumglobal gloval1global gloval2global locavallocaval=' ';gloval1=str2num(gloval1);gloval2=str2num(gloval2);case1=gloval1/gloval2;case2=gloval1*gloval2;case3=gloval1-gloval2;case4=gloval1+gloval2;case1=num2str(case1);case2=num2str(case2);case3=num2str(case3);case4=num2str(case4);switch flagnum;case 1set(handles.edit1,'String',case1);case 2set(handles.edit1,'String',case2);case 3set(handles.edit1,'String',case3);case 4set(handles.edit1,'String',case4);endguidata(hObject,handles)% --- Executes on button press in pushbutton19.function pushbutton19_Callback(hObject, eventdata, handles)% hObject handle to pushbutton19 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) edit1String = get(handles.edit1,'String');if(strcmp(edit1String,'0.')==1)set(handles.edit1,'String','0.') ;elsess=char(edit1String);l=length(edit1String);edit1String=ss(1:l-1);set(handles.edit1,'String',edit1String)endguidata(hObject,handles)% --- Executes on button press in pushbutton20.function pushbutton20_Callback(hObject, eventdata, handles)% hObject handle to pushbutton20 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global locavallocaval=' ';set(handles.edit1,'String','0');guidata(hObject,handles)function edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit2 as text% str2double(get(hObject,'String')) returns contents of edit2 as a double% --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end五.结果展示。

最新matlab简易计算器

最新matlab简易计算器

m a t l a b简易计算器电子信息工程系实验报告课程名称:MATLAB语言Array实验项目名称:MATLAB图形用户界面设计实验时间:班级:姓名:学号:实验目的: 1、熟悉MATLAB的主要控件使用方法。

2、熟悉MATLAB的GUI设计流程。

实验环境:硬件配置( Pentium(R) 4 CPU 2.40GHz,1GB内存)操作系统(Windows XP)编程软件:MATLAB7.0实验内容与结果:使用MATLAB的GUI接口设计一个简单的计算器。

效果图:程序源码部分函数及相关注释:%0~9数字键及小数点按钮代码范例%全局变量locaval用于存储用户输入的多位数值%全局变量gloval2用于存储待处理的第二位数值function pushbutton1_Callback(hObject, eventdata, handles) global locaval;a = get(handles.pushbutton1,'String');locaval=strcat(locaval,a);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);%运算符按钮处理“+、-、*、\”范例%全局变量flagnum存储运算符标志%全局变量global1用于储存第一个待处理数值function pushbutton10_Callback(hObject, eventdata, handles)a = get(handles.pushbutton10,'String');b = get(handles.text1,'String');set(handles.text1,'String',a);global flagnumglobal gloval1global locavallocaval=' ';flagnum=1;gloval1=b;guidata(hObject, handles);%取相反数按钮“+\-”代码%算法实现:用零减去文本框现在的值,再赋值给文本框function pushbutton14_Callback(hObject, eventdata, handles) global locaval;locaval=str2num(locaval);locaval=0-locaval;locaval=num2str(locaval);set(handles.text1,'String',locaval);global gloval2gloval2=locaval;guidata(hObject, handles);% 等号按钮运算实现%根据flagnum运算标志用switch决策语句实现相应计算%需注意相应数据类型的转化function pushbutton17_Callback(hObject, eventdata, handles) global flagnumglobal gloval1global gloval2global locavallocaval=' ';gloval1=str2num(gloval1);gloval2=str2num(gloval2);case1=gloval1/gloval2;case2=gloval1*gloval2;case3=gloval1-gloval2;case4=gloval1+gloval2;case1=num2str(case1);case2=num2str(case2);case3=num2str(case3);case4=num2str(case4);switch flagnum;case 1set(handles.text1,'String',case1);case 2set(handles.text1,'String',case2);case 3set(handles.text1,'String',case3);case 4set(handles.text1,'String',case4);endguidata(hObject,handles)% BackSpace按钮函数%算法实现:MATLAB是用矩阵存储数据的,相应的可以取文本框的前N-1实现其功能function pushbutton19_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)set(handles.text1,'String','0.') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.text1,'String',textString)endguidata(hObject,handles)%C清除按钮函数%把全局变量locaval清零function pushbutton20_Callback(hObject, eventdata, handles)global locavallocaval=' ';set(handles.text1,'String','0.');guidata(hObject,handles)%开平方函数function pushbutton22_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');textString=str2num(textString);textString=sqrt(textString);textString=num2str(textString);set(handles.text1,'String',textString);locaval=' ';guidata(hObject,handles)%取1/x函数function pushbutton24_Callback(hObject, eventdata, handles)global locavallocaval=str2num(locaval);locaval=1/locaval;set(handles.text1,'String',locaval);locaval=' ';guidata(hObject,handles)实验心得:!、通过MATLAB简单计算器的设计,初步了解了关于MATLAB图形用户界面的部分控件的使用方法。

matlabGUI计算器

matlabGUI计算器

计算器一、实习任务利用MATLAB里面的函数和GUI用户设计工具箱,制作简易计算器,实现简单的计算任务。

二、实习内容1、布局设计2、程序设计(1)数字按键textString = get(handles.text1,'String');textString = strcat(textString,'0');set(handles.text1,'string',textString)(2)符号按键textString = get(handles.text1,'String'); textString = strcat(textString,'*');set(handles.text1,'string',textString)(3)清零按键set(handles.text1,'string','')(4)返回按键textString = get(handles.text1,'String');set(handles.text1,'String','');ss=char(textString);n=length(textString);textString = ss(1:n-1);set(handles.text1,'string',textString)(5)函数按键textString = handles.text1;textString =sin(str2num(get(handles.text1,'String'))*pi/180); set(handles.text1,'string',num2str(textString)) ; (get(handles.text1,'String'))*pi/1803、效果图三、遇到的问题及解决方法1、遇到的问题在这次MATLAB简易计算器设计中,最大的问题就是不知道如何编写程序,其次就是在Command里面实现了,但在GUI用户界面不知道如何操作编写。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简易算术计算器的设计一、算术计算器的功能:能进行简单的加、减、乘、除法,sin,cos,tan,x^2,squrt运算,输入文本框显示为常量多项式,输出文本框显示为精确到小数点后十位的数值。

计算器包含十个数字键0~9、小数点键“.”、小括号键“(”“)”、运算符号、清屏键、退格键、退出键等。

二、设计思路:每按下一个数字键或者符号键的时候,利用get(handles.edit1,'string')获取当前输入文本框edit1的string属性,并通过字符串合并函数strcat()将当前输入文本框edit1的字符型string属性与按键的字符型string属性合并成字符串,然后利用属性设置函数set(); 将合并后的字符串返回到输入文本框edit1的string属性。

当输入结束,用户按下等号的时候,采用x=get(handles.edit1,'string')获取当前输入文本框edit1的string属性,然后利用字符串执行命令y1=eval(x)计算输入文本框的表达式,得到的结果是字符型常量;然后利用字符串输出格式控制函数y=sprintf('%.10f',y1)使输出结果精确到小数点后十位;最后利用属性设置函数set(handles.edit2,'string',y)将转换后的字符串返回到输出文本框edit2的string属性。

三、设计步骤:1、运行matlab2014a,进入主界面。

2、输入guide,进入GUI开发环境。

3、创建控件:按钮包括数字0~9、运算符“+ - * /”、功能键等26个,输入和动态静态文本框,显示文字的静态文本框四个等。

4、对控件单击右键弹出菜单,选择属性检查器,设置控件属性。

5、选择工具栏上的对齐对象按键,调整控件布局。

6、选择工具栏上的Tab 顺序编辑器按键,通过和设置各控件的Tab顺序。

7、设计菜单:在GUI开发环境下,选择工具栏上的进入菜单编辑器,分别选择和创建主菜单和子菜单。

8、编写回调函数。

(1)数字键0的回调函数:% --- Executes on button press in pushbutton3.function pushbutton10_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)%数字键0的回调函数:%get函数获取输入文本框edit1的string属性,赋值给numbers,数值类型为char;numbers=get(handles.edit1,'string');%字符串合并函数strcat()将按键"0"与numbers的值合并,将合并后的字符串返回到输入文本框edit1的string属性;set(handles.edit1,'string',strcat(numbers,'0'));%同理编写其余数字键、小数点键、小括号键、运算符号键;(2)数字键1的回调函数:% --- Executes on button press in pushbutton7.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)%数字键1的回调函数:numbers=get(handles.edit1,'string');(3)数字键2的回调函数:% --- Executes on button press in pushbutton7.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%数字键2的回调函数:numbers=get(handles.edit1,'string');set(handles.edit1,'string',strcat(numbers,'2'));(4)数字键3的回调函数:% --- Executes on button press in pushbutton10.function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton10 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%数字键3的回调函数:numbers=get(handles.edit1,'string');set(handles.edit1,'string',strcat(numbers,'3'));(5)数字键4的回调函数:% --- Executes on button press in pushbutton9.function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%数字键4的回调函数:numbers=get(handles.edit1,'string');set(handles.edit1,'string',strcat(numbers,'4'));(6)数字键5的回调函数:% --- Executes on button press in pushbutton7.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%数字键5的回调函数:numbers=get(handles.edit1,'string');set(handles.edit1,'string',strcat(numbers,'5'));(7)数字键6的回调函数:% --- Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%数字键6的回调函数:numbers=get(handles.edit1,'string');(8)数字键7的回调函数:% --- Executes on button press in pushbutton5.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%数字键7的回调函数:numbers=get(handles.edit1,'string');set(handles.edit1,'string',strcat(numbers,'7'));(9)数字键8的回调函数:% --- Executes on button press in pushbutton8.function pushbutton8_Callback(hObject, eventdata, handles)% hObject handle to pushbutton8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%数字键8的回调函数:numbers=get(handles.edit1,'string');set(handles.edit1,'string',strcat(numbers,'8'));(10)数字键9的回调函数:% --- Executes on button press in pushbutton4.function pushbutton9_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%数字键9的回调函数:numbers=get(handles.edit1,'string');set(handles.edit1,'string',strcat(numbers,'9'));(11)小数点“.”键的回调函数:% --- Executes on button press in pushbutton17.function pushbutton16_Callback(hObject, eventdata, handles)% hObject handle to pushbutton17 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%小数点的回调函数;point=get(handles.edit1,'string');set(handles.edit1,'string',strcat(point,'.'));(12)加号“+”键的回调函数:% --- Executes on button press in pushbutton10.function pushbutton11_Callback(hObject, eventdata, handles)% hObject handle to pushbutton10 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%加号“+”键的回调函数;signs=get(handles.edit1,'string');(13)减号“-”键的回调函数:% --- Executes on button press in pushbutton9.function pushbutton12_Callback(hObject, eventdata, handles)% hObject handle to pushbutton9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%减号“-”键的回调函数;signs=get(handles.edit1,'string');set(handles.edit1,'string',strcat(signs,'-'));(14)乘号“*”键的回调函数:% --- Executes on button press in pushbutton7.function pushbutton13_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%乘号“×”键的回调函数;signs=get(handles.edit1,'string');set(handles.edit1,'string',strcat(signs,'*'));(15)除号“/”键的回调函数:% --- Executes on button press in pushbutton8.function pushbutton14_Callback(hObject, eventdata, handles)% hObject handle to pushbutton8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%除号“÷”键的回调函数;signs=get(handles.edit1,'string');set(handles.edit1,'string',strcat(signs,'/'));(16)左括号“(”键的回调函数:% --- Executes on button press in pushbutton21.function pushbutton21_Callback(hObject, eventdata, handles)% hObject handle to pushbutton21 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%左括号“(”键的回调函数;signs=get(handles.edit1,'string');set(handles.edit1,'string',strcat(signs,'('));(17)右括号“)”键的回调函数:% --- Executes on button press in pushbutton20.function pushbutton20_Callback(hObject, eventdata, handles)% hObject handle to pushbutton20 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%右括号“)”键的回调函数;signs=get(handles.edit1,'string');(18)等号“=”号键的回调函数:% --- Executes on button press in pushbutton15.function pushbutton15_Callback(hObject, eventdata, handles)% hObject handle to pushbutton15 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)%等号“=”号键的回调函数;%get函数获取输入文本框edit1的string属性,并赋值与x;x=get(handles.edit1,'string');%利用执行字符串命令eval()计算用户输入的表达式,得到的结果为char型;y1=eval(x);%利用字符串输出格式控制函数sprintf()将字符型常量精确到小数点后十位;y=sprintf('%.10f',y1);%利用属性设置函数set()将字符型结果返回到输出文本框edit2的string属性;set(handles.edit2,'string',y);(19)clc键的回调函数:% --- Executes on button press in pushbutton19.function pushbutton19_Callback(hObject, eventdata, handles)% hObject handle to pushbutton19 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)%CLC键的回调函数;%清空输入文本框edit1的string属性;set(handles.edit1,'String','');%清空输出文本框edit2的string属性;set(handles.edit2,'String','0');(20)delete键的回调函数:% --- Executes on button press in pushbutton18.function pushbutton18_Callback(hObject, eventdata, handles)% hObject handle to pushbutton18 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)%Delete键的回调函数;%get()函数获取当前输入文本框的string属性,并赋值与s1;s1=get(handles.edit1,'string');%length(s1)函数获取s1字符串的长度,并利用s1(1:length(s1)-1)获取s1的第一个到第(length(s1)-1)个字符串,已达到删除前一个字符的目的;s2=s1(1:(length(s1)-1));%利用属性设置函数set()将字符型结果返回到输入文本框edit1的string属性;set(handles.edit1,'string',s2);(21)exit键的回调函数:% --- Executes on button press in pushbutton17.function pushbutton17_Callback(hObject, eventdata, handles)% hObject handle to pushbutton17 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)%Exit键的回调函数;close;(22)sin函数的回调:% --- Executes on button press in pushbutton28.function pushbutton28_Callback(hObject, eventdata, handles)% hObject handle to pushbutton28 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) textString=get(handles.edit1,'String');if(strcmp(textString,'0.')==1)set(handles.edit1,'String','0.')elsea=strread(textString,'%f');a=sin(a);set(handles.edit1,'String',a)end(23)cos键的回调函数:% --- Executes on button press in pushbutton27.function pushbutton27_Callback(hObject, eventdata, handles)% hObject handle to pushbutton27 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) textString=get(handles.edit1,'String');if(strcmp(textString,'0.')==1)set(handles.edit1,'String','0.')elsea=strread(textString,'%f');a=cos(a);set(handles.edit1,'String',a)end(24)tan键的回调函数:% --- Executes on button press in pushbutton26.function pushbutton26_Callback(hObject, eventdata, handles)% hObject handle to pushbutton26 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) textString=get(handles.edit1,'String');if(strcmp(textString,'0.')==1)set(handles.edit1,'String','0.')elsea=strread(textString,'%f');a=tan(a);set(handles.edit1,'String',a)end(25)x^2键的回调函数:% --- Executes on button press in pushbutton33.function pushbutton33_Callback(hObject, eventdata, handles)% hObject handle to pushbutton33 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) textString=get(handles.edit1,'String');if(strcmp(textString,'0.')==1)set(handles.edit1,'String','0.') elsea=strread(textString,'%f');a=a*a;set(handles.edit1,'String',a)end9、调试运行程序:8.成品计算机。

相关文档
最新文档