MATLAB编写矩阵计算器

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

一、GUI开发环境简介

MATLAB提供了一套可视化的创建图形窗口的工具,使用用户界面开发环境可方便的创建GUI应用程序, 它可以根据用户设计的GUI布局,自动生成M文件的框架,用户使用这一框架编制自己的应用程序。

图形用户界面(Graphical User Interfaces ,GUI)则是由窗口、光标、按键、菜单、

文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。

二、矩阵计算器介绍

2.1 程序使用的控件

在矩阵计算器设计中主要用到三种控件,文本编辑框(edit text),静态文本框(Static text),命令按钮(push button),边框(panel)。然后在通过各个按钮的回调函数,实现简单的计算功能。

2.2 程序功能介绍

(1)具有用户图形界面。实现矩阵的加、减、乘、左除、右除等简单计算。

(2)有清空键,能清除操作。

2.3 矩阵计算器界面及主要控件功能

注释:

text1文本编辑框控件功能:输出要计算公式。如[12 45;78 56]+[659 238;79 56] MatA文本编辑框功能:输入参与计算矩阵A

MatB文本编辑框功能:输入参与计算矩阵B

MatC静态文本框功能:输出计算结果矩阵C

三、部分计算操作结果

(1) 加法+

MatA

text1 pushbutton22

pushbutton23

pushbutton24

pushbutton20

(2)求逆

(3)转置

(4)群运算.*

四、部分模块功能算法的实现

(1)按键’加法+’响应:

a=get(handles.matA,'string');

textString=strcat(a,'+');

b=get(handles.matB,'string');

textString=strcat(textString,b);

set(handles.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(handles.matB,'String','[]')

set(handles.matC,'String','')

注释:其余模块功能算法与以上代码较为相似,不在一一举例。

五、其余传参方法

本程序通过文本编辑框(edit text)达到传参的目的,下面介绍两种常用的其他传参方式。

(1)运用global定义全局变量传递参数

这种方法适用于gui内控件间以及不同gui间,是最简单的方式。

使用方法:gloal xxxx

在每一个要到该全局变量的地方,都要添一句gloal xxxx。

缺点:全局变量破坏了程序的封装性,所以,全局变量是能少用尽量少用。

(2)运用UserData传递参数

直接通过对象的userdata属性进行各个callback之间的数据存取操作。首先必须将数据存储到一个特定的对象中,假设对象的句柄值为handles.text1,需要存储的值为value,则输入以下程序即可:

set(' handles.text1,'UserData',Value);

此时,value数据就存在句柄值为ui_handle的对象内,在执行的过程中若要取回变量可以通过以下方式在任意callback中获取该数据值:

value=get('' handles.text1,'UserData');

缺点:每个对象仅能存取一个变量值,因此当同一对象存储两次变量时,先前的变量值就会被覆盖掉,因此都用UserData存储简单与单一的数据。

六、心得

这次作业在MATLAB GUI编程中是较为简单的,虽然老师当天布置的作业我当天完成,但是这期间还是遇到一些困难,比如起初我的程序计算结果矩阵C用文本编辑框(edit text),我的代码是正确的,但是却得不到结果。最后通过上网查资料,解决了该问题。同时我对MATLAB有了新的认识。

1、通过MATLAB矩阵计算器的设计,初步了解了关于MATLAB图形用户界面的部分控件的使用方法。

2、MATLAB的GUI提供的很多实用的控件,方便用于设计属于自己的图形界面。

3、Matlab具有强大、丰富的内置函数和工具箱,界面设计时更加简洁、快捷与直观。

七、详细代码

function varargout = untitled1(varargin)

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @untitled1_OpeningFcn, ...

'gui_OutputFcn', @untitled1_OutputFcn, ...

'gui_LayoutFcn', [], ...

相关文档
最新文档