基于matlab的计算器编程附代码

合集下载

(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)是由光标,窗口,菜单、文字说明等对象构成一个用户界面。

简单的VB计算器代码

简单的VB计算器代码

简单的VB计算器代码:'变量定义说明部分Dim x1 As Single, x2 As SingleDim Y As SingleDim n As Integer '标记使用运算符类型'接收数据输入Private Sub Command1_Click(Index As Integer)Text1.Text = Text1.Text + CStr(Index)End Sub'按运算符时的处理方法Private Sub Command3_Click(Index As Integer)x1 = Val(Text1.Text)Text1.Text = ""n = IndexEnd Sub'输入小数点时的处理办法Private Sub Command2_Click()Text1.Text = Text1.Text + "."End Sub'单击退格按钮时的处理方法Private Sub Command4_Click()Text1.Text = Mid(Text1.Text, 1, Len(Text1.Text) - 1) End Sub'单击清除按钮时的处理方法Private Sub Command5_Click() x1 = 0: x2 = 0: Y = 0Text1.Text = ""End Sub'单击退出按钮时的处理方法Private Sub Command6_Click() Unload MeEnd Sub'单击"="按钮时的处理方法Private Sub Command7_Click() x2 = Val(Text1.Text)On Error GoTo err1Select Case nCase 0Y = x1 + x2Case 1Y = x1 - x2Case 2Y = x1 * x2Case 3Y = x1 / x2End SelectText1.Text = CStr(Y)Exit Suberr1:MsgBox "您输入的数据有误,请重新输入!", vbOKOnly + vbCritical, "错误!"Text1.Text = ""x1 = 0: x2 = 0: Y = 0Exit SubEnd Sub运行界面如下:。

matlab-GUI-设计(简易科学计算器)

matlab-GUI-设计(简易科学计算器)

MATLAB大作业班级:姓名:学号:计算器➢题目本题目通过MATLAB的gui程序设计较为简单,在gui设计中主要用到三种控件,文本编辑框(edit text),静态文本框(Static text),命令按钮(push button)。

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

➢1、功能介绍(1)具有友好的用户图形界面。

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

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

(注:三角函数计算的是弧度而不是角度)。

(3)有清除键,能清除操作。

➢2、功能实现程序由两个部分组成:MATLAB代码(.m文件)和GUI图形(.fig)。

程序使用的流程:直接利用图形界面中的按键键入所需数值、运算符等即可得出结果。

备注:软件版本:MATLAB 2011b首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及33个命令按钮,调整好各控件大小、颜色,整体布局如图所示:(附录中有相关属性修改介绍)然后通过双击各个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。

2.1 各功能界面设计GUI设计界面:注:底部边框用(Panel)工具添加,有两种设计顺序。

(1、先加底部边框,再在底部边框上画功能键。

2、先画功能键,布好局,画底框,全选功能键拖动到底框上。

)2.2 各功能模块实现(可根据需要增减功能键)算法设计:1. 数字键设计:0—9以及小数点函数都一样,只是参数不同:例如:按键‘1’响应: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;2. 四则运算函数:‘+’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'+');set(handles.text1,'String',textString)‘-’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'-');set(handles.text1,'String',textString)‘×’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'*');set(handles.text1,'String',textString)‘÷’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'/');set(handles.text1,'String',textString)3. 科学计算函数:例如:‘sin’功能响应: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)end4. 退格键(DEL):通过取屏幕值,计算出其字符长度,然后取其前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;5. 清屏键函数(AC):set(handles.text1,'String','0.') ;2.3 各模块程序添加方法选中一个需添加程序的功能键,右击,View Callbacks,Callback,出现如下图所示界面。

Matlab实验指导书(含答案)详解

Matlab实验指导书(含答案)详解

实验一:Matlab操作环境熟悉一、实验目的1.初步了解Matlab操作环境。

2.学习使用图形函数计算器命令funtool及其环境。

二、实验内容熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算:1.单函数运算操作。

➢求下列函数的符号导数(1) y=sin(x);(2)y=(1+x)^3*(2-x);➢求下列函数的符号积分(1) y=cos(x);(2) y=1/(1+x^2);(3)y=1/sqrt(1—x^2);(4) y=(x-1)/(x+1)/(x+2);➢求反函数(1) y=(x—1)/(2*x+3);(2) y=exp(x);(3)y=log(x+sqrt(1+x^2));➢代数式的化简(1) (x+1)*(x—1)*(x—2)/(x—3)/(x-4);(2) sin(x)^2+cos(x)^2;(3)x+sin(x)+2*x—3*cos(x)+4*x*sin(x);2.函数与参数的运算操作。

➢从y=x^2通过参数的选择去观察下列函数的图形变化(1)y1=(x+1)^2(2)y2=(x+2)^2(3) y3=2*x^2(4)y4=x^2+2(5)y5=x^4(6)y6=x^2/23.两个函数之间的操作➢求和(1) sin(x)+cos(x)(2) 1+x+x^2+x^3+x^4+x^5➢乘积(1) exp(—x)*sin(x)(2)sin(x)*x➢商(1)sin(x)/cos(x);(2)x/(1+x^2);(3)1/(x-1)/(x-2);➢求复合函数(1) y=exp(u) u=sin(x)(2)y=sqrt(u) u=1+exp(x^2)(3)y=sin(u)u=asin(x)(4) y=sinh(u)u=—x三、设计提示1.初次接触Matlab应该注意函数表达式的文本式描述。

matlab简易计算器设计步骤与回调函数设计说明

matlab简易计算器设计步骤与回调函数设计说明

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

计算器包含十个数字键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、运行matlab 7.13版,进入主界面。

2、点击工具栏上的GUIDE图标进入GUI开发环境。

3、创建控件:Push Button包括数字0~9、运算符“+ - ×÷”、功能键等十九个,输入和动态静态文本框Edit Text,显示文字的静态文本框Static Text四个等。

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

控件属性表text text1 制作:***16pointsboldon0.8310.8160.7840 0 1 text2 Inputtext3 Outputtext4 算术计算器200.7490.749editedit1 空白字符串10pointson 1 1 1 0 0 0 edit2 空白字符串5、选择工具栏上的Align Objects按键,调整控件布局。

Matlab实验指导书(含答案)详解

Matlab实验指导书(含答案)详解

实验一:Matlab操作环境熟悉一、实验目的1.初步了解Matlab操作环境。

2.学习使用图形函数计算器命令funtool及其环境。

二、实验内容熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算:1.单函数运算操作。

➢求下列函数的符号导数(1) y=sin(x);(2) y=(1+x)^3*(2-x);➢求下列函数的符号积分(1) y=cos(x);(2) y=1/(1+x^2);(3) y=1/sqrt(1-x^2);(4) y=(x-1)/(x+1)/(x+2);➢求反函数(1) y=(x-1)/(2*x+3);(2) y=exp(x);(3) y=log(x+sqrt(1+x^2));➢代数式的化简(1) (x+1)*(x-1)*(x-2)/(x-3)/(x-4);(2) sin(x)^2+cos(x)^2;(3) x+sin(x)+2*x-3*cos(x)+4*x*sin(x);2.函数与参数的运算操作。

➢从y=x^2通过参数的选择去观察下列函数的图形变化(1) y1=(x+1)^2(2) y2=(x+2)^2(3) y3=2*x^2(4) y4=x^2+2(5) y5=x^4(6) y6=x^2/23.两个函数之间的操作➢求和(1) sin(x)+cos(x)(2) 1+x+x^2+x^3+x^4+x^5➢乘积(1) exp(-x)*sin(x)(2) sin(x)*x➢商(1) sin(x)/cos(x);(2) x/(1+x^2);(3) 1/(x-1)/(x-2);➢求复合函数(1) y=exp(u) u=sin(x)(2) y=sqrt(u) u=1+exp(x^2)(3) y=sin(u) u=asin(x)(4) y=sinh(u) u=-x三、设计提示1.初次接触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程序算例Matlab是一种广泛应用于科学和工程领域的高级计算机编程语言及环境。

它的简洁、高效和强大的功能使得许多人选择使用Matlab来解决复杂的数学和工程问题。

在本文中,我将以一个具体的Matlab程序算例为例,详细说明每一步是如何完成的。

那么我们首先来看一下这个具体的Matlab程序算例。

假设我们希望计算并绘制一个二维正弦函数,代码如下:matlab设置步长,定义x轴的范围dx = 0.1;x = 0:dx:10;计算对应的y值y = sin(x);绘制图像plot(x, y);在这个例子中,我们通过定义一个步长`dx`和一个x轴的范围`x`来生成一系列的x值。

然后,我们使用`sin()`函数计算对应的y值,并将结果保存在`y`中。

最后,我们使用`plot()`函数绘制x和y的图像。

现在,让我们一步一步来回答这个程序算例中的问题。

第一步:设置步长和定义x轴的范围。

matlabdx = 0.1;x = 0:dx:10;这里我们设置步长`dx`为0.1,表示x轴上两个相邻点之间的间距为0.1。

然后,我们使用冒号运算符`:`创建一个从0到10的向量`x`,其中每个元素之间的间隔为`dx`。

也就是说,`x`中的元素为0, 0.1, 0.2, …, 9.9, 10。

第二步:计算对应的y值。

matlaby = sin(x);这里,我们使用`sin()`函数计算每个x值对应的正弦值,并将结果保存在`y`中。

例如,如果x的第一个元素为0,则使用`sin(0)`计算得到y的第一个元素的值。

第三步:绘制图像。

matlabplot(x, y);最后,我们使用`plot()`函数将x和y的值绘制成图像。

这样就可以观察到x和y之间的关系。

在这个例子中,由于x的范围是从0到10,并且y是对应的正弦值,因此我们将得到一个周期为2π的正弦函数的图像。

以上就是这个Matlab程序算例的每一步的解释。

MATLAB科学计算器设计——GUI设计(含源代码)

MATLAB科学计算器设计——GUI设计(含源代码)

MATLAB科学计算器设计——GUI设计(含源代码)目录计算器的效果图............................................................................ 错误!未定义书签。

第一章GUI设计界面 .. (4)1.1打开GUI (4)1.2.添加按钮 (5)1.3.根据按钮的作用及视觉效果做一定的修改 (5)1.4.保存、添加功能函数 (6)1.4.1 数字键编写 (6)1.4.2 符号键的编写 (6)1.4.3 运算符“=”的编写 (6)1.4.4 按键“←back”的编写 (7)1.4.5 按键“清空”的编写 (7)1.4.6 按键“退出”的编写 (7)1.4.7 按键“二进制数转十进制数”的编写 (7)1.4.8 按键“十进制数转二进制数”的编写 (7)第二章计算器的使用 (7)2.1 除法运算(÷) (7)2.2 平方运算(^2) (8)2.3 函数cos (∏/3)的计算 (8)2.4 函数arctan (∏/3)的计算 (9)2.5 以2为底的对数(log 2)的计算 (9)2.6 十进制数转二进制数的计算 (10)2.7 二进制数转十进制数的计算 (11)第三章各按键的程序源代码 (12)第四章问题和解决方法 (17)第五章心得体会 (16)参考文献 (17)计算器的效果图:第一章GUI设计界面:1.1打开GUI输入Guide 回车或者在工具栏上点击图标打开Guide 窗口:图 11.2.添加按钮图21.3.根据按钮的作用及视觉效果做一定的修改双击按钮(Puch Button)进入按键属性修改显示字符串大小、字体和颜色,然后对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。

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

用MATLAB做的 一个计算器

用MATLAB做的 一个计算器

一、布局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数字按键下编写此类程序。

(2).符号键:function pushbutton12_Callback(hObject, eventdata, handles)textString = get(handles.text1,'String');textString =strcat(textString,'+');set(handles.text1,'String',textString)strcat的作用是将两个字符串连接起来,就是在已输入的存储数据textString 后添加“+”进行运算。

matlab gui计算器工作原理

matlab gui计算器工作原理

MATLAB GUI计算器是一种基于MATLAB编程语言的图形用户界面应用程序,它可以像普通计算器一样执行基本数学运算并提供一些高级功能。

下面将介绍MATLAB GUI计算器的工作原理。

1. MATLAB GUI计算器的界面设计MATLAB GUI计算器的界面主要由各种按钮、文本框和其他控件组成,用户可以通过鼠标点击按钮或者输入文本框来进行计算操作。

界面设计需要考虑美观和易用性,通常可以使用MATLAB中的GUIDE工具来进行可视化设计。

2. MATLAB GUI计算器的程序逻辑MATLAB GUI计算器的程序逻辑主要由MATLAB脚本文件编写而成,这些脚本文件包括界面初始化、按钮点击事件处理、计算逻辑等。

通过编写MATLAB脚本,可以实现各种计算功能,并与界面上的控件进行交互。

3. MATLAB GUI计算器的计算功能MATLAB GUI计算器可以执行基本的加减乘除运算,同时还可以实现一些高级的数学函数计算,比如三角函数、指数函数、对数函数等。

这些功能需要通过MATLAB内置的数学函数库来实现。

4. MATLAB GUI计算器的数据输入和输出MATLAB GUI计算器的数据输入通常通过用户的按钮点击或者键盘输入来实现,而数据输出则通过界面上的文本框显示。

在实现计算逻辑时,可以将用户输入的数据和计算结果通过MATLAB脚本进行处理,并更新到界面上。

5. MATLAB GUI计算器的实时更新MATLAB GUI计算器可以在用户输入数据或者点击按钮时实时更新界面上的数据和计算结果,这需要通过MATLAB脚本中的事件处理函数来实现数据更新和界面刷新。

通过上述介绍,我们可以清晰地了解MATLAB GUI计算器的工作原理和实现方法。

通过深入学习MATLAB编程语言和GUI设计技术,我们可以设计出更加复杂和功能强大的GUI应用程序,为科学计算和工程应用提供便利和高效的计算工具。

6. MATLAB GUI计算器的错误处理在使用MATLAB GUI计算器时,用户可能会输入错误的数据或者进行非法的计算操作,因此在程序中需要考虑到错误处理的逻辑。

基于MATLAB的多功能计算器设计与实现

基于MATLAB的多功能计算器设计与实现

基于MATLAB的多功能计算器设计与实现摘要随看信息技术的发展,数据变得越来越重要,针对数据的处理也越来越复杂,计算器在我们日常生活学习中扮演越来越重要角色。

本文基于MATLAB设计的GUI 多功能计算器,包括三部分:简易计算器、科学计算器和程序员计算器。

其中,简易计算器包括了常用的加减乘除;科学计算器在加减乘除上,添加了正余弦、阶乘和对数等常用的数学计算;程序员计算器包括了二进制、八进制、十六进制的相互转换和二进制的与、或和异或等逻辑运算。

此多功能计算器改进了以前功能单一的计算器,具有较强的实用性。

关键字:MATLAB; GUI ;多功能计算器AbstractWith the development of information technology, the data become more andmore complicated, according to data operations have become increasingly frequent, thecalculator is playing a more and more important role in leamning in our daily life. In this paper,MATLAB design of GUI based multi functional calculator, consists of three parts: a simplecalculator, scientific calculator and programmers calculator. The simple calculator, includingcommon add, subtract, multiply and divide; scientific calculator in add, subtract, multiply anddivide, add the commonly used mathematical cosine, factorial and logarithm calculation;programmers calculator includes the conversion of binary, octal, hexadecimal and binarysixteen and, or and XOR logic operation. The multi-function calculator before improvedsingle function has a strong practical.Keyword: MATLAB; GUI; Multi Function Calculator目录第1章绪论 (1)1.1.基于MATLAB的多功能计算器设计的目的和意义 (1)1.2国内外现状分析 (1)1.2.1 国内外计算器的发展 (1)1.2.2计算器的类型 (2)第2章数字信号处理原理概念 (4)2.1数字信号处理 (4)2.2数字信号处理的概述 (4)2.3用MATLAB实现信号处理 (4)2.3.1信号的取样 (4)2.3.2信号的重构 (5)第3章计算器总体设计 (6)3.1计算器整体设计思路 (6)3.2计算器的功能实现 (7)3.2.1数字0-9设计与实现 (7)3.2.2四则运算设计 (7)3.2.3简单科学计算设计 (7)3.2.4功能按钮设计 (7)第4章 MATLAB GUI界面设计 (8)4.1MATLAB GUI介绍 (8)4.2GUI界面创建的基本知识 (8)4.3计算器界面设计 (9)第5章 MATLAB程序设计 (10)5.1 M文件 (10)5.1.1局部变量与全局变量 (10)5.1.2M文件的编辑与运行 (11)5.1.3脚本文件 (13)5.1.4函数文件 (13)5.1.5函数调用 (14)5.2MATLAB的程序控制结构 (16)5.3 数据的输入与输出 (17)5.3.1 键盘输入语句(input) (17)5.3.2屏幕输出语句(disp) (17)5.3.3 M数据文件的存储/加载(save/load) (17)5.3.4二进制数据文件的存储/读取 (18)5.4.面向对象程序设计的基本方法 (19)5.4.1.创建类目录 (19)5.4.2.建立类的数据结构 (19)5.4.3创建类的基本方法 (19)5.4.4重载运算 (19)5.4.5面向对象的函数 (19)5.5MATLAB程序优化 (19)结语 (20)附录 (21)参考文献 (28)致谢...............................................................................................................第1章绪论1.1.基于MATLAB的多功能计算器设计的目的和意义当今时代是一个信息化的时代,信息化的时代到处充满了数据,生活在这个信息化时代的人们,无论人们在做什么行业,都需要时时刻刻跟数据打交道。

gui计算器设计matlab代码

gui计算器设计matlab代码

GUI计算器设计MATLAB代码1. 简介GUI(Graphical User Interface,图形用户界面)计算器是一种利用图形界面设计的计算器,用户可以通过鼠标点击按钮进行数字输入和运算。

MATLAB是一种功能强大的数学计算软件,拥有丰富的绘图和可视化功能,可以用于设计和实现GUI计算器。

本文将介绍如何使用MATLAB编写GUI计算器的代码。

2. 界面设计在设计GUI计算器的界面时,需要考虑用户友好性和美观性。

可以通过MATLAB提供的GUIDE工具进行界面设计,添加数字按钮、运算符按钮和显示屏等组件。

另外,还可以设置布局和颜色,使界面更加美观。

3. 代码实现需要创建一个新的MATLAB GUI应用程序,然后在GUIDE工具中设计界面。

在界面设计完成后,需要编辑回调函数来实现计算器的功能。

以下是一个简单的GUI计算器的MATLAB代码示例:```matlabfunction calculatorGUI创建整体界面figure('Name','Calculator','NumberTitle','off','Position',[100,100,4 00,600]);创建显示屏hEdit =uicontrol('Style','edit','String','','Position',[50,500,300,50]);创建数字按钮numBtns = {'7','8','9','4','5','6','1','2','3','0'};for i = 1:10hNumBtn(i) =uicontrol('Style','pushbutton','String',numBtns{i},'Position',[50+5 0*rem(i-1,3),450-50*fix((i-1)/3),50,50],'Callback',numBtn_callback);end创建运算符按钮operatorBtns = {'+','-','*','/','='};for i = 1:5hOperatorBtn(i) =uicontrol('Style','pushbutton','String',operatorBtns{i},'Position',[2 00,450-50*(i-1),50,50],'Callback', operatorBtn_callback);数字按钮回调函数function numBtn_callback(hObject,~)str = get(hEdit,'String');str = [str get(hObject,'String')];set(hEdit,'String',str);end运算符按钮回调函数function operatorBtn_callback(hObject,~) str = get(hEdit,'String');val = get(hObject,'String');if ~isempty(str)if strcmp(val,'=')tryresult = eval(str);set(hEdit,'String',num2str(result)); catchset(hEdit,'String','Error');endelseset(hEdit,'String',[str val]);endendendend```4. 运行效果运行以上代码,将会弹出一个简单的GUI计算器界面,用户可以通过点击数字按钮和运算符按钮来输入表达式并进行计算。

psnr的matlab代码

psnr的matlab代码

psnr的matlab代码PSNR是一种视频或图像质量评估指标,通常用于衡量重建后的像素数据与原始像素数据之间的差异。

PSNR值越高,则表示重建图像的质量越好。

在这篇文章中,我们将介绍如何使用MATLAB编写一个PSNR计算器。

该程序将读取两个图像文件,并计算它们之间的PSNR值。

下面是实现此功能的步骤:步骤1:导入图像文件为了计算图像的PSNR值,我们首先需要导入两个图像文件。

我们可以使用imread函数来读取图像文件,如下所示:img1 = imread('image1.jpg');img2 = imread('image2.jpg');在这个例子中,我们假设有两个图像文件:image1.jpg和image2.jpg。

它们作为输入被导入到变量img1和img2中。

步骤2:比较两张图像接下来,我们比较这两张图像。

我们可以使用psnr函数来计算它们之间的PSNR值。

函数的基本语法如下所示:psnrval = psnr(image1, image2)在我们的代码中,我们将使用以下命令:psnrval = psnr(img1, img2);这将返回图像文件img1和img2之间的PSNR值,保存在变量psnrval 中。

步骤3:显示PSNR值最后,我们可以在MATLAB命令窗口中显示PSNR值,如下所示:disp(['The PSNR value is ', num2str(psnrval)]);这将输出一条消息,显示PSNR值。

消息将看起来像这样:The PSNR value is 23.9157这就是我们的程序!这里是完整的MATLAB代码:% 导入图像文件img1 = imread('image1.jpg');img2 = imread('image2.jpg');% 比较两个图像psnrval = psnr(img1, img2);% 显示PSNR值disp(['The PSNR value is ', num2str(psnrval)]);我们希望这篇文章能够帮助你学习如何使用MATLAB编写一个简单的PSNR计算器。

Matlab实现的简易计算器程序代码

Matlab实现的简易计算器程序代码

function varargout = jisuanqi(varargin)% JISUANQI M-file for jisuanqi.fig% JISUANQI, by itself, creates a new JISUANQI or raises the existing % singleton*.%% H = JISUANQI returns the handle to a new JISUANQI or the handle to % the existing singleton*.%% JISUANQI('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in JISUANQI.M with the given input arguments. %% JISUANQI('Property','Value',...) creates a new JISUANQI or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before jisuanqi_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application % stop. All inputs are passed to jisuanqi_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 text to modify the response to help jisuanqi% Last Modified by GUIDE v2.5 20-Jul-2011 09:45:20% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @jisuanqi_OpeningFcn, ...'gui_OutputFcn', @jisuanqi_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 jisuanqi is made visible.function jisuanqi_OpeningFcn(hObject, eventdata, handles, varargin) handles.current_str='';%´ËΪ´æ´¢µ±Ç°µÄ×Ö·û´®handles.L1_str='';handles.L2_str='';%´ËΪ´æ´¢ÉÏÒ»¸öÊý×ÖµÄ×Ö·û´®% 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 jisuanqi (see VARARGIN)% Choose default command line output for jisuanqihandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes jisuanqi wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = jisuanqi_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;% --- Executes on button press in Number_0.function Number_0_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ0£¬Èç¹û°´ÁË0¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'0');handles.L1_str=strcat(handles.L1_str,'0');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_0 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --- Executes on button press in xiaoshudian.function xiaoshudian_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'.');guidata(hObject, handles);%СÊýµã% hObject handle to xiaoshudian (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --- Executes on button press in jia_jian.function jia_jian_Callback(hObject, eventdata, handles)% hObject handle to jia_jian (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_1.function Number_1_Callback(hObject, eventdata, handles)% hObject handle to Number_1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ1£¬Èç¹û°´ÁË1¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'1');handles.L1_str=strcat(handles.L1_str,'1');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% --- Executes on button press in Number_2.function Number_2_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ2£¬Èç¹û°´ÁË1¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'2');handles.L1_str=strcat(handles.L1_str,'2');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_3.function Number_3_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ3£¬Èç¹û°´ÁË3¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'3');handles.L1_str=strcat(handles.L1_str,'3');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_4.function Number_4_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ4£¬Èç¹û°´ÁË4¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'4');handles.L1_str=strcat(handles.L1_str,'4');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_5.function Number_5_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ5£¬Èç¹û°´ÁË5¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'5');handles.L1_str=strcat(handles.L1_str,'5');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_6.function Number_6_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ6£¬Èç¹û°´ÁË6¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'6');handles.L1_str=strcat(handles.L1_str,'6');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_7.function Number_7_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ7£¬Èç¹û°´ÁË7¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'7');handles.L1_str=strcat(handles.L1_str,'7');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_8.function Number_8_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ8£¬Èç¹û°´ÁË8¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'8');handles.L1_str=strcat(handles.L1_str,'8');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Number_9.function Number_9_Callback(hObject, eventdata, handles)%Á¬½Óµ±Ç°µÄ×Ö·û´®ºÍ9£¬Èç¹û°´ÁË9¼üµÄ»°¡£handles.current_str=strcat(handles.current_str,'9');handles.L1_str=strcat(handles.L1_str,'9');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Number_9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in jiahao.function jiahao_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'+');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to jiahao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in denghao.function denghao_Callback(hObject, eventdata, handles)st = get(handles.edit1,'String');%¼ÆËã½á¹û£¬²¢´æ·Åµ½µÚ¶þ¸ö±à¼-¿òÖС£val = eval(st);s = num2str(val);set(handles.edit2,'String',s);guidata(hObject, handles);% hObject handle to denghao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in jianhao.function jianhao_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'-');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to jianhao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in X_daoshu.function X_daoshu_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'\1');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to X_daoshu (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in chenghao.function chenghao_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'*');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to chenghao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in baifenhao.function baifenhao_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'/100');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);handles.L2_str=handles.L1_str;handles.L1_str = '';% hObject handle to baifenhao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in chuhao.function chuhao_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'/');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to chuhao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in Sqrt.function Sqrt_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'sqrt');handles.L1_str=strcat(handles.L1_str,'sqrt');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to Sqrt (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in X_lifang.function X_lifang_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'^3');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to X_lifang (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in x_pingfang.function x_pingfang_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'^2');set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to x_pingfang (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in zhengqie.function zhengqie_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'tan');handles.L1_str=strcat(handles.L1_str,'tan');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to zhengqie (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in zhengxian.function zhengxian_Callback(hObject, eventdata, handles)handles.current_str=strcat(handles.current_str,'sin');handles.L1_str=strcat(handles.L1_str,'sin');%ÔÚÊä³öµ±Ç°µÄ×Ö·û´®set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);% hObject handle to zhengxian (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in CE.function CE_Callback(hObject, eventdata, handles)% hObject handle to CE (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in C.function C_Callback(hObject, eventdata, handles)% hObject handle to C (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) handles.current_str = '';set(handles.edit1,'String','0.');set(handles.edit2,'String','0.');guidata(hObject, handles);% --- Executes on button press in Backspace.function Backspace_Callback(hObject, eventdata, handles)% hObject handle to Backspace (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)s1 = handles.current_str;handles.current_str = s1(1:length(s1)-1);set(handles.edit1,'String',handles.current_str);guidata(hObject, handles);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 text% str2double(get(hObject,'String')) returns contents of edit1 as a double% --- 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 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');endif ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')) ;end% --- Executes on button press in shujujiazai.function shujujiazai_Callback(hObject, eventdata, handles)% hObject handle to shujujiazai (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global YSData;[filename,pathname,FILTERINDEX]=uigetfile({'*.xls';'*.dat';'*.*'},'Ñ¡ÔñÊý¾ÝÎļþ');if(FILTERINDEX==0)return;endstr_filename=[pathname,filename];fid=fopen(str_filename,'rt');if(fid==-1)errordlg('Open file error!','Open error');return;endYSData=xlsread(str_filename);set(handles.lujingxianshi,'String',str_filename);set(handles.tuxingxianshi,'Enable','on');function lujingxianshi_Callback(hObject, eventdata, handles)% hObject handle to lujingxianshi (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)set(handles.lujingxianshi,'String',pathname);% Hints: get(hObject,'String') returns contents of lujingxianshi as text % str2double(get(hObject,'String')) returns contents of lujingxianshi as a double% --- Executes during object creation, after setting all properties. function lujingxianshi_CreateFcn(hObject, eventdata, handles)% hObject handle to lujingxianshi (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% --- Executes on button press in zhuxingtu.function zhuxingtu_Callback(hObject, eventdata, handles)% hObject handle to zhuxingtu (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)set(handles.zhuxingtu,'Value',1);set(handles.zhexiantu,'Value',0);set(handles.yuanbingtu,'Value',0);% Hint: get(hObject,'Value') returns toggle state of zhuxingtu% --- Executes on button press in zhexiantu.function zhexiantu_Callback(hObject, eventdata, handles)% hObject handle to zhexiantu (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)set(handles.zhuxingtu,'Value',0);set(handles.zhexiantu,'Value',1);set(handles.yuanbingtu,'Value',0);% Hint: get(hObject,'Value') returns toggle state of zhexiantu% --- Executes on button press in yuanbingtu.function yuanbingtu_Callback(hObject, eventdata, handles)% hObject handle to yuanbingtu (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)set(handles.zhuxingtu,'Value',0);set(handles.zhexiantu,'Value',0);set(handles.yuanbingtu,'Value',1);% Hint: get(hObject,'Value') returns toggle state of yuanbingtu% --- Executes on button press in tuxingxianshi.function tuxingxianshi_Callback(hObject, eventdata, handles)global YSData;%Åжϡ®Í¼ÏñÀàÐÍ¡¯ÏÂ×éºÏ¿òÖеĸ÷µ¥Ñ¡°´Å¥µÄÑ¡ÖÐÇé¿ö£¬²¢´æ´¢ÔÚIndex_rad iobuttonÖÐIndex_radiobutton=get([handles.zhuxingtu,handles.zhexiantu,handles.yuan bingtu],'Value');%½øÐÐͼÐÎÉú³Éif(Index_radiobutton{1}==1)bar(YSData);title('¸÷Êý¾ÝÖ±·½Í¼');endif(Index_radiobutton{2}==1)plot(YSData);title('¸÷Êý¾ÝÕÛÏßͼ');endif(Index_radiobutton{3}==1)pie(YSData);title('¸÷Êý¾ÝÔ²±ýͼ');end% hObject handle to tuxingxianshi (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% global YSData;% --- Executes during object creation, after setting all properties. function tuxingxianshi_CreateFcn(hObject, eventdata, handles)% hObject handle to tuxingxianshi (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called 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% --- Executes on button press in Quit.function Quit_Callback(hObject, eventdata, handles)% hObject handle to Quit (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)close(gcf);% --- Executes during object deletion, before destroying properties. function zhengxian_DeleteFcn(hObject, eventdata, handles)% hObject handle to zhengxian (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)function edit3_Callback(hObject, eventdata, handles)% hObject handle to edit3 (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 edit3 as text% str2double(get(hObject,'String')) returns contents of edit3 as a double% --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles)% hObject handle to edit3 (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设计矩阵计算器

MATLAB程序设计语言大作业——矩阵计算器题目:矩阵计算器学号:02123010姓名:石星宇指导教师:汤建龙一、实验目的1、通过GUI(Graphical User Interface,简称GUI,图形用户界面,又称图形用户接口)设计矩阵计算器,熟悉MATLAB中GUI工具的使用和编程。

2、加深对MATLAB GUI中句柄控制变量的理解。

3、巩固线性代数中矩阵的基本运算。

二、实验内容1、利用MATLAB中的GUIDE工具箱快速生成GUI界面。

2、在生成的GUI界面中设计能够实现矩阵基本运算的矩阵计算器。

三、实验结果通过GUIDE快速生成GUI界面设计的矩阵计算器如下图所示:图1 Matrix Calculator基本界面该矩阵计算器包含四模块,分别为:输入区、输出区、功能区及其他运算区。

四、功能描述1、功能概述本矩阵计算器能够实现一些基本的矩阵运算,包括对单个矩阵的运算以及对两个矩阵的运算。

其中,对于两个矩阵的运算有:加、减、乘、除(左除、右除)、按元素乘、按元素除以及求解线性方程组;对于単个矩阵的运算有:转置(共轭与非共轭)、求逆、计算行列式、求秩、平方、立方、开方、求特征值、求2范数、LU 分解、最简阶梯阵化简等。

计算过程中,矩阵的输入方式与MATLAB 中矩阵输入方式类似。

即①矩阵行中的元素以空格或逗号间隔;②矩阵行之间以分号间隔;③整个元素列表用方括号括起来。

2、功能详细描述 2.1矩阵相加(减)输入A=[1 2 3;4 5 6;7 8 9],B=[1 4 7;2 5 8;3 6 9],按下“+”按钮,输出区显示计算结果如图2所示:输入的A 、B 矩阵必须是维数相同,否则不能实现相加运算。

如输入不同维数的矩阵且进行相加运算,则会提示出错如图3所示:两矩阵相减的运算过程与相加运算类似,在此不再赘述。

图2 矩阵相加图3 矩阵相加错误提示2.2矩阵相乘输入A=[1 2 3;4 5 6;7 8 9],B=[1 4 7;8 5 2;3 9 6],按下“*”按钮,输出区显示计算结果如图4所示:输入的A 、B 矩阵必须满足前者的列数等于后者的行数,否则不能实现矩阵的乘法运算,出现错误提示如图5所示:2.3按元素乘(除)输入同2.2。

用MATLAB实现计算器程序源代码

用MATLAB实现计算器程序源代码

function varargout = caculator(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @caculator_OpeningFcn, ...'gui_OutputFcn', @caculator_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{:});endfunction caculator_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;set(handles.edit1,'string','0');set(handles.edit5,'string','0');guidata(hObject, handles);function varargout = caculator_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;function edit1_Callback(hObject, eventdata, handles)function edit1_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit2_Callback(hObject, eventdata, handles)function edit2_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit3_Callback(hObject, eventdata, handles)function edit3_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction pushbutton1_Callback(hObject, eventdata, handles)handles.num1=strcat(get(handles.edit1,'string'),'+');set(handles.edit1,'string',handles.num1);guidata(hObject,handles);function pushbutton2_Callback(hObject, eventdata, handles) handles.num2=strcat(get(handles.edit1,'string'),'-');set(handles.edit1,'string',handles.num2);guidata(hObject,handles);function pushbutton3_Callback(hObject, eventdata, handles) handles.num3=strcat(get(handles.edit1,'string'),'*');set(handles.edit1,'string',handles.num3);guidata(hObject,handles);function pushbutton4_Callback(hObject, eventdata, handles) handles.num4=strcat(get(handles.edit1,'string'),'/');set(handles.edit1,'string',handles.num4);guidata(hObject,handles);function pushbutton_1_Callback(hObject, eventdata, handles) handles.shu1=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu1=strcat(handles.yuanshu,handles.shu1);if length(handles.shu1)<2;elseif (length(handles.shu1)>=2)&&(handles.shu1(end-1)==')')&& (handles.shu1(1)=='l')temp=handles.shu1(end);handles.shu1(end)=handles.shu1(end-1);handles.shu1(end-1)=temp;endset(handles.edit1,'string',handles.shu1);guidata(hObject, handles);function pushbutton_2_Callback(hObject, eventdata, handles) handles.shu2=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu2=strcat(handles.yuanshu,handles.shu2);if length(handles.shu2)<2;elseif (length(handles.shu2)>=2)&&(handles.shu2(end-1)==')')&& (handles.shu2(1)=='l')temp=handles.shu2(end);handles.shu2(end)=handles.shu2(end-1);handles.shu2(end-1)=temp;endset(handles.edit1,'string',handles.shu2);guidata(hObject, handles);function pushbutton_4_Callback(hObject, eventdata, handles) handles.shu4=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu4=strcat(handles.yuanshu,handles.shu4);if length(handles.shu4)<2;elseif (length(handles.shu4)>=2)&&(handles.shu4(end-1)==')')&& (handles.shu4(1)=='l')temp=handles.shu4(end);handles.shu4(end)=handles.shu4(end-1);handles.shu4(end-1)=temp;endset(handles.edit1,'string',handles.shu4);guidata(hObject, handles);function pushbutton_3_Callback(hObject, eventdata, handles) handles.shu3=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu3=strcat(handles.yuanshu,handles.shu3);if length(handles.shu3)<2;elseif (length(handles.shu3)>=2)&&(handles.shu3(end-1)==')')&& (handles.shu3(1)=='l')temp=handles.shu3(end);handles.shu3(end)=handles.shu3(end-1);handles.shu3(end-1)=temp;endset(handles.edit1,'string',handles.shu3);guidata(hObject, handles);function pushbutton_5_Callback(hObject, eventdata, handles) handles.shu5=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu5=strcat(handles.yuanshu,handles.shu5);if length(handles.shu5)<2;elseif (length(handles.shu5)>=2)&&(handles.shu5(end-1)==')')&& (handles.shu5(1)=='l')temp=handles.shu5(end);handles.shu5(end)=handles.shu5(end-1);handles.shu5(end-1)=temp;endset(handles.edit1,'string',handles.shu5);guidata(hObject, handles);function pushbutton_9_Callback(hObject, eventdata, handles) handles.shu9=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu9=strcat(handles.yuanshu,handles.shu9);if length(handles.shu9)<2;elseif (length(handles.shu9)>=2)&&(handles.shu9(end-1)==')')&& (handles.shu9(1)=='l')temp=handles.shu9(end);handles.shu9(end)=handles.shu9(end-1);handles.shu9(end-1)=temp;endset(handles.edit1,'string',handles.shu9);guidata(hObject, handles);function pushbutton_7_Callback(hObject, eventdata, handles) handles.shu7=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu7=strcat(handles.yuanshu,handles.shu7);if length(handles.shu7)<2;elseif (length(handles.shu7)>=2)&&(handles.shu7(end-1)==')')&& (handles.shu7(1)=='l')temp=handles.shu7(end);handles.shu7(end)=handles.shu7(end-1);handles.shu7(end-1)=temp;endset(handles.edit1,'string',handles.shu7);guidata(hObject, handles);function pushbutton_8_Callback(hObject, eventdata, handles) handles.shu8=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu8=strcat(handles.yuanshu,handles.shu8);if length(handles.shu8)<2;elseif (length(handles.shu8)>=2)&&(handles.shu8(end-1)==')')&& (handles.shu8(1)=='l')temp=handles.shu8(end);handles.shu8(end)=handles.shu8(end-1);handles.shu8(end-1)=temp;endset(handles.edit1,'string',handles.shu8);guidata(hObject, handles);function pushbutton_6_Callback(hObject, eventdata, handles) handles.shu6=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu6=strcat(handles.yuanshu,handles.shu6);if length(handles.shu6)<2;elseif (length(handles.shu6)>=2)&&(handles.shu6(end-1)==')')&& (handles.shu6(1)=='l')temp=handles.shu6(end);handles.shu6(end)=handles.shu6(end-1);handles.shu6(end-1)=temp;endset(handles.edit1,'string',handles.shu6);guidata(hObject, handles);function pushbutton18_Callback(hObject, eventdata, handles) handles.jieguo=get(handles.edit1,'string');handles.jieguo=strcat('=',handles.jieguo);eval(['handles.result''1' handles.jieguo]);set(handles.edit5,'string',num2str(handles.result1));guidata(hObject,handles);function pushbutton_0_Callback(hObject, eventdata, handles) handles.shu0=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');if handles.yuanshu(end)=='N';handles.yuanshu(end)='';endif handles.yuanshu(1)=='0';handles.yuanshu=handles.yuanshu(2:end);endhandles.shu0=strcat(handles.yuanshu,handles.shu0);if length(handles.shu0)<2;elseif (length(handles.shu0)>=2)&&(handles.shu0(end-1)==')')&& (handles.shu0(1)=='l')temp=handles.shu0(end);handles.shu0(end)=handles.shu0(end-1);handles.shu0(end-1)=temp;endset(handles.edit1,'string',handles.shu0);guidata(hObject, handles);function pushbutton20_Callback(hObject, eventdata, handles) handles.shu10=get(hObject,'string');handles.yuanshu=get(handles.edit1,'string');handles.shu10=strcat(handles.yuanshu,handles.shu10);set(handles.edit1,'string',handles.shu10);guidata(hObject, handles);function pushbutton21_Callback(hObject, eventdata, handles) function edit5_Callback(hObject, eventdata, handles)function edit5_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction pushbutton22_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.fanhao=strcat('-(',handles.yuanshu,')');set(handles.edit1,'string',handles.fanhao);guidata(hObject, handles);function pushbutton23_Callback(hObject, eventdata, handles)set(handles.edit1,'string','0');set(handles.edit5,'string','0');guidata(hObject, handles);function pushbutton24_Callback(hObject, eventdata, handles)result=questdlg('ÕæµÄÒªÍ˳ö£¿','Í˳öÈ·ÈÏ','È·¶¨','È¡Ïû','È¡Ïû'); if result=='È·¶¨', close(gcf); endfunction pushbutton25_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.sin=strcat('sin(',handles.yuanshu,')');set(handles.edit1,'string',handles.sin);guidata(hObject, handles);function pushbutton26_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.cos=strcat('cos(',handles.yuanshu,')');set(handles.edit1,'string',handles.cos);guidata(hObject, handles);function pushbutton27_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.tan=strcat('tan(',handles.yuanshu,')');set(handles.edit1,'string',handles.tan);guidata(hObject, handles);function pushbutton28_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.ln=strcat('reallog(',handles.yuanshu,')');set(handles.edit1,'string',handles.ln);guidata(hObject, handles);function pushbutton29_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.log=strcat('log',handles.yuanshu,'()');set(handles.edit1,'string',handles.log);guidata(hObject, handles);function pushbutton30_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.daoshu=strcat('1/(',handles.yuanshu,')');set(handles.edit1,'string',handles.daoshu);guidata(hObject, handles);function pushbutton31_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.sqrt=strcat('sqrt(',handles.yuanshu,')');set(handles.edit1,'string',handles.sqrt);guidata(hObject, handles);function pushbutton32_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.pingfang=strcat('(',handles.yuanshu,')^2');set(handles.edit1,'string',handles.pingfang);guidata(hObject, handles);function pushbutton33_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.ncifang=strcat('(',handles.yuanshu,')^N');set(handles.edit1,'string',handles.ncifang);guidata(hObject, handles);function pushbutton35_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.kuohao=strcat('(',handles.yuanshu,')');set(handles.edit1,'string',handles.kuohao);guidata(hObject, handles);function pushbutton36_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.yuanshu=handles.yuanshu(1:(end-1));if length(handles.yuanshu)<1handles.yuanshu='0';endset(handles.edit1,'string',handles.yuanshu);guidata(hObject, handles);% --- Executes on button press in pushbutton37.function pushbutton37_Callback(hObject, eventdata, handles) handles.yuanshu=get(handles.edit1,'string');handles.exp=strcat('exp(',handles.yuanshu,')');set(handles.edit1,'string',handles.exp);guidata(hObject, handles);% --- Executes when user attempts to close figure1.function figure1_CloseRequestFcn(hObject, eventdata, handles)% hObject handle to figure1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Hint: delete(hObject) closes the figuredelete(hObject);%--------------------------------------------------------------------function Untitled_14_Callback(hObject, eventdata, handles)% hObject handle to Untitled_14 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_15_Callback(hObject, eventdata, handles)set(gcf,'color','red')% hObject handle to Untitled_15 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_16_Callback(hObject, eventdata, handles)set(gcf,'color','blue')% hObject handle to Untitled_16 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_17_Callback(hObject, eventdata, handles)set(gcf,'color','green')% hObject handle to Untitled_17 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_18_Callback(hObject, eventdata, handles)set(gcf,'color','black')% hObject handle to Untitled_18 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_19_Callback(hObject, eventdata, handles)set(gcf,'color','yellow')% hObject handle to Untitled_19 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)%--------------------------------------------------------------------function Untitled_20_Callback(hObject, eventdata, handles)set(gcf,'color','m')% hObject handle to Untitled_20 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) function Untitled_1_Callback(hObject, eventdata, handles)function Untitled_2_Callback(hObject, eventdata, handles)function Untitled_3_Callback(hObject, eventdata, handles)function Untitled_4_Callback(hObject, eventdata, handles)function Untitled_4_CreateFcn(hObject, eventdata, handles)function Untitled_5_Callback(hObject, eventdata, handles)function Untitled_6_Callback(hObject, eventdata, handles)。

MATLABGUI入门简单实例(加法计算器)

MATLABGUI入门简单实例(加法计算器)

本人初学GUI ,针对网上版本的混乱,学得一头雾水,特重新整理如下,供大家参考。

1.首先我们新建一个 GUI 文件:File/New/GUI 如下图所示;选择 Blank GUI(Default),点击 OK 。

2.进入GUI 开发环境以后添加 3个编辑文本框(Edit Text ),2个静态文本框(Static Text ), 和一个Push Button 按钮,布置如下图所示;⑷修改Pushbutton 按钮的属性,“ string 改为“ Add ” “ tag 改为“ add ”⑸另外2个Static 文本就是的“ string 修改为"+ ”"=”(6)点击“保存”,名字任意取,自动弹出 M 文件(我的是7.0版本,不知其他版本会不 会如此)。

(1) 第一个 “in putl ”(2) 第二个 “input2 ”(3)第三个“ Edit Text! ”的用来存储第一个加数,我们将“Edit Tex2”的用来存储第二个加数,我们将"Edit Tex3"的 “string 改为 “Q ” “tag 为““ string 改为 “ 0,” “ tag 改为 “ string 改为 “ 0” “ tag 改为 an swer3•我们先为第一个Edit Text文本框添加代码,即读取第一个加数;点击上图所示红色方框,选择input1_Callback,光标便立刻移到下面这段代码(程序自动生成)的位置。

function in put1_Callback(hObject, even tdata, han dies)% hObject han dle to in putl (see GCBO)% eve ntdata reserved - to be defi ned in a future version of MATLAB% han dles structure with han dles and user data (see GUIDATA)% Hints: get(hObject, ' String ' ) returns cpnttlnasoext% str2double(get(hObject, ' String ' )) returnscontents of editl as a double然后在上面这段代码的下面插入如下代码:%以字符串的形式来存储数据文本框1的内容•如果字符串不是数字,则现实空白内容input=str2num(get(hObject,'String')); %检查输入是否为空.如果为空,则默认显示为0 if(isempty(i nput))set(hObject,'Stri ng','0')endguidata(hObject,handles);%保存handles结构体,只要在handles结构体有改变时,才需要保存%guidata(hObject, handles);%这里由于handles没有改变,故这里其实没有必要,但是为了避免潜在的不必要麻烦,建议在所有Callback都添加该命令。

matlab数值计算代码

matlab数值计算代码

matlab数值计算代码Matlab是一种强大的数值计算软件,广泛应用于科学研究、工程设计等领域。

在Matlab中,我们可以使用代码来进行各种数值计算,包括数值积分、数值求解方程、数值解微分方程等。

本文将介绍一些常见的数值计算代码,并说明其原理和应用。

一、数值积分数值积分是利用数值方法求解定积分的过程。

在Matlab中,我们可以使用simpson函数或trapz函数进行数值积分计算。

这两个函数分别采用辛普森公式和梯形公式进行数值积分近似。

例如,下面的代码使用simpson函数计算函数f(x)在区间[a,b]上的定积分:```matlaba = 0;b = 1;n = 100;x = linspace(a, b, n);y = f(x);integral = simpson(y, x);```其中,a和b分别是积分区间的上下限,n是划分区间的个数,x是划分后的区间点,y是函数在各个区间点处的函数值,integral是计算得到的定积分值。

二、数值求解方程数值求解方程是指利用数值方法求解方程的近似解。

在Matlab中,我们可以使用fzero函数或fsolve函数进行数值求解方程。

这两个函数采用不同的求解算法,可以用于求解单变量方程或多变量方程。

例如,下面的代码使用fzero函数求解方程f(x)=0:```matlabx0 = 0;x = fzero(@f, x0);```其中,x0是求解初始值,@f是函数句柄,表示要求解的方程。

x 是求解得到的近似解。

三、数值解微分方程数值解微分方程是指利用数值方法求解微分方程的近似解。

在Matlab中,我们可以使用ode45函数或ode23函数进行数值解微分方程。

这两个函数采用不同的数值方法,可以用于求解常微分方程或偏微分方程。

例如,下面的代码使用ode45函数求解常微分方程dy/dx=f(x,y):```matlabx0 = 0;y0 = 1;xspan = [0, 1];[t, y] = ode45(@f, xspan, y0);```其中,x0和y0分别是初始条件,xspan是求解区间,@f是函数句柄,表示要求解的微分方程。

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

1.需求分析本次的实验要求是设计一个计算器,主要功能如下:(1)实现基本数学运算(加减乘除等),而且要能进行混合运算(2)实现部分函数功能,如求平方根、求倒数等(3)能实现小数运算界面与标准计算器界面类似根据要求以及以前的学习情况,决定使用matlab进行编程。

Matlab强大的计算功能以及便捷的GUI设计,可以较为简便的实现所要求的功能。

按照要求,数据输入和输出支持小数点,支持四则混合运算,决定使用如下几个数据进行分析:(1+3)*5Sqrt(4)1/2Sin4用以检验是否可以进行加减乘除四则运算、平方根、倒数、正弦的运算。

2.程序设计M atlab的程序设计较为简便,用GUI设计出一个计算器的模型,然后系统会自动生成一个框架,在框架中,写入每一个按键对应的程序就可以实现功能。

3.调式分析编程的过程中遇到的问题不是很多,基本就是找要实现各个功能的子程序,通过上网和去图书馆,加上自己的编写,终于实现了实验要求的功能。

但是有一点很重要,matlab不支持中文,所以从路径到文件名必须是全英文的,不然就无法识别。

此外,给每个按键命名也是很重要的,不然在生成的程序框架里面,就无法识别各个按键的作用,编写程序的时候也就无法做到一一对应。

4.使用说明程序的使用比较简单,由于是可视化界面,直接打开matlab,然后建立一个GUI 工程,再打开生成的fig文件,就是一个计算器的界面,直接按照市面上卖的计算器的方法,按键使用即可。

5.测试结果计算结果为204sqrt=2Sin4结果为1/2=0.5经过计算,这些结果均与实际结果相吻合,计算器的功能实现的较为完好。

6.心得体会本次试验由于不限制语言,于是计算功能强大,操作简便的matlab变成了首选,matlab的GUI设计,操作是较为简单的,首先建立一个GUI工程,然后用可视化界面,设计出计算器的大致外观,为每一个按键设置预计的功能,然后就是将对应的函数写到框架生成的程序中,然后每个按键就可以实现对应的功能。

在设计的过程中还是遇到很多的困难的,首先就是程序的问题,搭建出计算器的外观以后,生成的框架程序是一个看似非常杂乱的程序,每个按键对应什么功能根本看不出来,于是我在原来的工程中修改了每一个按键的名称。

编程的过程中,主要就是对全局变量和句柄的控制,对相应的值赋值以后,要返回给主程序,然后就可以在static text中显示出来的。

句柄是一个很重要的概念,基本所有的操作都是通过句柄实现的,MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄(Handle)。

句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。

例如:set(句柄,属性名1,属性值1,属性名2,属性值2,…),基本所有关联到图形操作的函数语句都是这样的格式:函数名(句柄,进行的操作),因此句柄是一个图形的名称,是对图形进行操作的媒介。

此外,由于matlab是全英文的操作环境,所以所有的中文路径和中文的文件夹名称均不支持,不然就会在程序中报错,虽然可以打开,但是按键不可以实现功能,这点是要特别留意的,一般情况下,直接将文件保存在默认的work路径下即可。

经过老师的指点,我修改了界面,使其更加美观,可惜的是matla无法实现一个窗口的单独计算器,这不得不说是一个遗憾吧。

本次试验本来打算使用VB进行编程的,但是VB的计算功能不够强大,所以在处理四则运算的时候比较麻烦,于是最后还是决定选择matlab,经过这次实习,我对matlab 的操作与GUI界面射界有了更深一步的理解,知道了回调函数的基本写法以及各个功能的基本函数的内容,感觉受益匪浅。

附录A程序以及注释(注:前面带有%的句子是程序自动生成的框架程序)%定义函数function varargout = untitled(varargin)% Last Modified by GUIDE v2.5 29-Jun-2009 16:06:25% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @untitled_OpeningFcn, ...'gui_OutputFcn', @untitled_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 EDITfunction untitled_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes untitled wait for user response (see UIRESUME) % uiwait(handles.figure1);% 定义全局变量jj,shift用于数字的设定global jj shift%设置句柄,用于将按键接收的值返回给主程序set(handles.text1,'String','0.');jj=0;shift=0;% --- Outputs from this function are returned to the command line. function varargout = untitled_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;% --- 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 CreateFcns called% --- 按键2响应function pushbutton2_Callback(hObject, eventdata, handles)global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','2') ;elsetextString =strcat(textString,'2');set(handles.text1,'String',textString)endjj=0;% --- 按键3响应function pushbutton3_Callback(hObject, eventdata, handles)global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','3') ;elsetextString =strcat(textString,'3');set(handles.text1,'String',textString)endjj=0;% --- 按键4响应function pushbutton4_Callback(hObject, eventdata, handles) global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','4') ;elsetextString =strcat(textString,'4');set(handles.text1,'String',textString)endjj=0;% --- 按键5响应function pushbutton5_Callback(hObject, eventdata, handles) global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','5') ;elsetextString =strcat(textString,'5');set(handles.text1,'String',textString)endjj=0;% --- 按键6响应function pushbutton6_Callback(hObject, eventdata, handles) global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','6') ;elsetextString =strcat(textString,'6');set(handles.text1,'String',textString)endjj=0;% --- 按键7响应function pushbutton7_Callback(hObject, eventdata, handles) global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','7') ;elsetextString =strcat(textString,'7');set(handles.text1,'String',textString)endjj=0;% --- 按键8响应function pushbutton8_Callback(hObject, eventdata, handles) global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','8') ;elsetextString =strcat(textString,'8');set(handles.text1,'String',textString)endjj=0;% --- 按键9响应function pushbutton9_Callback(hObject, eventdata, handles) global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','9') ;elsetextString =strcat(textString,'9');set(handles.text1,'String',textString)endjj=0;% --- 按键0响应function pushbutton0_Callback(hObject, eventdata, handles) global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','0.') ;elsetextString =strcat(textString,'0');set(handles.text1,'String',textString)endjj=0;% --- 按键1响应function pushbutton1_Callback(hObject, eventdata, handles) 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;% --- 按键‘+’响应function pushbuttonadd_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String');textString =strcat(textString,'+');set(handles.text1,'String',textString)% --- 按键‘-’响应function pushbuttonsub_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String');textString =strcat(textString,'-');set(handles.text1,'String',textString)% --- 按‘*’响应function pushbuttonmul_Callback(hObject, eventdata, handles)% hObject handle to pushbuttonmul (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.text1,'String');textString =strcat(textString,'*');set(handles.text1,'String',textString)% --- 按键‘/’响应function pushbuttonchu_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String');textString =strcat(textString,'/');set(handles.text1,'String',textString)% --- 按键‘=’响应function pushbuttonequal_Callback(hObject, eventdata, handles) textString = get(handles.text1,'String');% if(strcmp(textString,'0.')==1)% set(handles.text1,'String','0.') ;% else% [pushbutton20 b c] = strread(textString, '%f %c %f');% clear ans;%% switch b% case '*'% ans=pushbutton20*c;% case '/'% if (c==0)% ans='Error Divided by zero';% else% ans=pushbutton20/c;% end% case '-'% ans=pushbutton20-c;% case '+'% ans=pushbutton20+c;%% end%这是系统自带的一个回调函数,回调函数是已经编写好的,提供给系统调用的函数关于eval函数的理解就是EVAL函数相当于将函数中的字符串,放到命令行中执行。

相关文档
最新文档