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

下载本文档

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

文档简介

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

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

3、tAMatBbutt on2butt on1齐际pushbutto n21ushbutto n22shbutto n23,hbutton24、pushbutton20butto n3butt on4butt on5butt on6calculatepushbutt on11三、局部计算操作结果(1)力口法+(2) 求逆(3)转置(4) 群运算.*四、局部模块功能算法的实现(1) 按键加法+'响应:a=get(ha ndles.matA,'stri ng');textStri ng=strcat(a,'+');b=get(ha ndles.matB,

4、9;stri ng');textStri ng=strcat(textStri ng,b);set(ha ndles.text1,'Stri ng',textStri ng);(2) 按键转置响应a=get(ha ndles.matA,'stri ng');textStri ng=strcat(a,"");set(ha ndles.text1,'Stri ng',textStri ng);(3) 按键计算'响应textStri ng=get(ha ndles.text1,'Stri ng');f

5、=eval(textStri ng);set(ha ndles.matC,'stri ng', num2str(f,'%15.5g')(5) 按键清空响应set(ha ndles.text1,'Stri ng','')set(ha ndles.matA,'Stri ng','')set(ha ndles.matB,'Stri ng','')set(ha ndles.matC,'Stri ng','')注释:其余模块功能算法与以上代码较为

6、相似,不在一一举例.五、其余传参方法本程序通过文本编辑框( edit text )到达传参的目的,下面介绍两种常用的其他传参方 式.(1 )运用 global 定义全局变量传递参数 这种方法适用于 gui 内控件间以及不同 gui 间,是最简单的方式. 使用方法: gloal xxxx 在每一个要到该全局变量的地方,都要添一句 gloal xxxx . 缺点:全局变量破坏了程序的封装性,所以,全局变量是能少用尽量少用.(2 )运用 UserData 传递参数直接通过对象的 userdata 属性进行各个 callback 之间的数据存取操作.首先必须将数 据存储到一个特定的对象中,假设对象的句

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

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

9、ction varargout = untitled1(varargin)gui_Singleton = 1;gui_State = struct('gui_Name',m, .'gui_Singleton', gui_Singleton, .'gui_OpeningFcn', untitled1_OpeningFcn, .'gui_OutputFcn', untitled1_OutputFcn, .'gui_LayoutFcn', , .'gui_Callback', );if nargin &a

10、mp;& ischar(varargin1)gui_State.gui_Callback = str2func(varargin1);endif nargoutvarargout1:nargout = gui_mainfcn(gui_State, varargin:); elsegui_mainfcn(gui_State, varargin:);endfunction untitled1_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;guidata(hObject, handles)

11、;function varargout = untitled1_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output;function calculate_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String');f=eval(textString); set(handles.matC,'string',num2str(f,'%15.5g');function button

12、1_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 button2_Callback(hObject, eventdata, handles) a=get(handles.matA

13、,'string');textString=strcat(a,'-');b=get(handles.matB,'string');textString=strcat(textString,b); set(handles.text1,'String',textString);function button3_Callback(hObject, eventdata, handles) a=get(handles.matA,'string');textString=strcat(a,'*');b=get(

14、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'); textString=strcat(textStr

15、ing,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);fun

16、ction button6_Callback(hObject, eventdata, handles) a=get(handles.matA,'string');textStri ng=strcat(a,'A-1');set(handles.text1,'String',textString);function button7_Callback(hObject, eventdata, handles) a=get(handles.matA,'string');textString=strcat(a,'''&

17、#39;);set(handles.text1,'String',textString);function matA_CreateFcn(hObject, eventdata, handles)ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor')set(hObject,'BackgroundColor','white');endfunction matB_CreateFcn(hO

18、bject, eventdata, handles)ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor')set(hObject,'BackgroundColor','white');endfunction matC_CreateFcn(hObject, eventdata, handles)ifispc&&isequal(get(hObject,'BackgroundCo

19、lor'),get(0,'defaultUicontrolBackgroundColor')set(hObject,'BackgroundColor','white');endfunction text10_CreateFcn(hObject, eventdata, handles)ifispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor') set(hObject,'

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

21、Object, eventdata, handles)set(handles.text1,'String','');set(handles.matA,'String','');set(handles.matB,'String','');set(handles.matC,'String','');function pushbutton20_Callback(hObject, eventdata, handles)a=get(handles.matA,'strin

22、g');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');textString=strcat(text

温馨提示

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

评论

0/150

提交评论