MATLAB编写矩阵计算器_第1页
MATLAB编写矩阵计算器_第2页
MATLAB编写矩阵计算器_第3页
MATLAB编写矩阵计算器_第4页
MATLAB编写矩阵计算器_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB大作业矩阵计算器设计制作班级:021231学号:02123066 王鹏一、GUI开发环境简介MATLAB提供了一套可视化的创立图形窗口的工具,使用用户界面开发环境可方便的创立GUI应用程序,它可以根据用户设计的GUI布局,自动生成M文件的框架,用户使用这一框架编制自己的应用程序。图形用户界面GraphicalUserInterfaces,GUI那么是由窗口、光标、按键、菜单、文字说明等对象Objects构成的一个用户界面。用户通过一定的方法如鼠标或键盘选择、激活这些图形对象,使计算机产生某种动作或变化,比方实现计算、绘图等。二、矩阵计算器介绍2.1 程序使用的控件在矩阵计算器设计中

2、主要用到三种控件,文本编辑框edittext,静态文本框Statictext,命令按钮pushbutton,边框panel。然后在通过各个按钮的回调函数,实现简单的计算功能。2.2 程序功能介绍(1)具有用户图形界面。实现矩阵的加、减、乘、左除、右除等简单计算。 (2)有清空键,能去除操作。2.3 矩阵计算器界面及主要控件功能注释:text1文本编辑框控件功能:输出要计算公式。如12 45;78 56+659 238;79 56MatA文本编辑框功能:输入参与计算矩阵AMatB文本编辑框功能:输入参与计算矩阵BMatC静态文本框功能:输出计算结果矩阵Cpushbutton21button1bu

3、tton2button3button5button4button6pushbutton11calculateButton7pushbutton22pushbutton23pushbutton24pushbutton20MatCtext1MatBMatA三、局部计算操作结果(1) 加法+(2) 求逆(3) 转置(4) 群运算.*四、局部模块功能算法的实现1按键加法+响应:a=get(handles.matA,string);textString=strcat(a,+);b=get(handles.matB,string);textString=strcat(textString,b);set(h

4、andles.text1,String,textString);2按键转置响应a=get(handles.matA,string);textString=strcat(a,);set(handles.text1,String,textString);3按键计算响应textString=get(handles.text1,String);f=eval(textString);set(handles.matC,string,num2str(f,%15.5g)(5) 按键清空响应set(handles.text1,String,)set(handles.matA,String,)set(handle

5、s.matB,String,)set(handles.matC,String,)注释:其余模块功能算法与以上代码较为相似,不在一一举例。五、其余传参方法本程序通过文本编辑框edit text到达传参的目的,下面介绍两种常用的其他传参方式。1运用global定义全局变量传递参数这种方法适用于gui内控件间以及不同gui间,是最简单的方式。使用方法:gloal xxxx在每一个要到该全局变量的地方,都要添一句gloal xxxx。缺点:全局变量破坏了程序的封装性,所以,全局变量是能少用尽量少用。2运用UserData传递参数直接通过对象的userdata属性进行各个callback之间的数据存取操

6、作。首先必须将数据存储到一个特定的对象中,假设对象的句柄值为handles.text1,需要存储的值为value,那么输入以下程序即可: set( handles.text1,UserData,Value); 此时,value数据就存在句柄值为ui_handle的对象内,在执行的过程中假设要取回变量可以通过以下方式在任意callback中获取该数据值 :value=get( handles.text1,UserData);缺点:每个对象仅能存取一个变量值,因此当同一对象存储两次变量时 ,先前的变量值就会被覆盖掉,因此都用UserData存储简单与单一的数据。六、心得这次作业在MATLAB GU

7、I编程中是较为简单的,虽然老师当天布置的作业我当天完成,但是这期间还是遇到一些困难,比方起初我的程序计算结果矩阵C用文本编辑框edit text,我的代码是正确的,但是却得不到结果。最后通过上网查资料,解决了该问题。同时我对MATLAB有了新的认识。1、通过MATLAB矩阵计算器的设计,初步了解了关于MATLAB图形用户界面的局部控件的使用方法。2、MATLAB的GUI提供的很多实用的控件,方便用于设计属于自己的图形界面。3、Matlab具有强大、丰富的内置函数和工具箱,界面设计时更加简洁、快捷与直观。七、详细代码function varargout = untitled1(varargin)

8、gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, untitled1_OpeningFcn, . gui_OutputFcn, untitled1_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout vararg

9、out1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);endfunction untitled1_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;guidata(hObject, handles);function varargout = untitled1_OutputFcn(hObject, eventdata, handles)varargout1 = handles.

10、output;function calculate_Callback(hObject, eventdata, handles)textString=get(handles.text1,String);f=eval(textString);set(handles.matC,string,num2str(f,%15.5g);function button1_Callback(hObject, eventdata, handles)a=get(handles.matA,string);textString=strcat(a,+);b=get(handles.matB,string);textStri

11、ng=strcat(textString,b);set(handles.text1,String,textString);function button2_Callback(hObject, eventdata, handles)a=get(handles.matA,string);textString=strcat(a,-);b=get(handles.matB,string);textString=strcat(textString,b);set(handles.text1,String,textString);function button3_Callback(hObject, even

12、tdata, handles)a=get(handles.matA,string);textString=strcat(a,*);b=get(handles.matB,string);textString=strcat(textString,b);set(handles.text1,String,textString);function button4_Callback(hObject, eventdata, handles)a=get(handles.matA,string);textString=strcat(a,);b=get(handles.matB,string);textStrin

13、g=strcat(textString,b);set(handles.text1,String,textString);function button5_Callback(hObject, eventdata, handles)a=get(handles.matA,string);textString=strcat(a,/);b=get(handles.matB,string);textString=strcat(textString,b);set(handles.text1,String,textString);function button6_Callback(hObject, event

14、data, handles)a=get(handles.matA,string);textString=strcat(a,-1);set(handles.text1,String,textString);function button7_Callback(hObject, eventdata, handles)a=get(handles.matA,string);textString=strcat(a,);set(handles.text1,String,textString);function matA_CreateFcn(hObject, eventdata, handles)if isp

15、c & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);endfunction matB_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);endfunc

16、tion matC_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);endfunction text10_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBac

17、kgroundColor) set(hObject,BackgroundColor,white);endfunction text1_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);endfunction pushbutton11_Callback(hObject, eventdata, handles)set(handles

18、.text1,String,);set(handles.matA,String,);set(handles.matB,String,);set(handles.matC,String,);function pushbutton20_Callback(hObject, eventdata, handles)a=get(handles.matA,string);textString=strcat(a,.*);b=get(handles.matB,string);textString=strcat(textString,b);set(handles.text1,String,textString);function pushbutton21_Callback(hObject, eventdata, handles)a=get(handles.matA,string);textString=strcat(a,./);b=get(handles.matB,string);textStrin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论