MATLAB编写矩阵计算器.docx

上传人:b****6 文档编号:15322327 上传时间:2023-07-03 格式:DOCX 页数:15 大小:255.98KB
下载 相关 举报
MATLAB编写矩阵计算器.docx_第1页
第1页 / 共15页
MATLAB编写矩阵计算器.docx_第2页
第2页 / 共15页
MATLAB编写矩阵计算器.docx_第3页
第3页 / 共15页
MATLAB编写矩阵计算器.docx_第4页
第4页 / 共15页
MATLAB编写矩阵计算器.docx_第5页
第5页 / 共15页
MATLAB编写矩阵计算器.docx_第6页
第6页 / 共15页
MATLAB编写矩阵计算器.docx_第7页
第7页 / 共15页
MATLAB编写矩阵计算器.docx_第8页
第8页 / 共15页
MATLAB编写矩阵计算器.docx_第9页
第9页 / 共15页
MATLAB编写矩阵计算器.docx_第10页
第10页 / 共15页
MATLAB编写矩阵计算器.docx_第11页
第11页 / 共15页
MATLAB编写矩阵计算器.docx_第12页
第12页 / 共15页
MATLAB编写矩阵计算器.docx_第13页
第13页 / 共15页
MATLAB编写矩阵计算器.docx_第14页
第14页 / 共15页
MATLAB编写矩阵计算器.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MATLAB编写矩阵计算器.docx

《MATLAB编写矩阵计算器.docx》由会员分享,可在线阅读,更多相关《MATLAB编写矩阵计算器.docx(15页珍藏版)》请在冰点文库上搜索。

MATLAB编写矩阵计算器.docx

MATLAB编写矩阵计算器

MATLAB编写矩阵计算器

 

班级:

021231

学号:

02123066

作者:

王鹏

 

一、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文本编辑框控件功能:

输出要计算公式。

如[1245;7856]+[659238;7956]

MatA文本编辑框功能:

输入参与计算矩阵A

MatB文本编辑框功能:

输入参与计算矩阵B

MatC静态文本框功能:

输出计算结果矩阵C

 

 

三、部分计算操作结果

(1)加法+

(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','')

注释:

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

五、其余传参方法

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

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

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

使用方法:

gloalxxxx

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

缺点:

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

(2)运用UserData传递参数

直接通过对象的userdata属性进行各个callback之间的数据存取操作。

首先必须将数据存储到一个特定的对象中,假设对象的句柄值为handles.text1,需要存储的值为value,则输入以下程序即可:

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

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

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

缺点:

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

六、心得

这次作业在MATLABGUI编程中是较为简单的,虽然老师当天布置的作业我当天完成,但是这期间还是遇到一些困难,比如起初我的程序计算结果矩阵C用文本编辑框(edittext),我的代码是正确的,但是却得不到结果。

最后通过上网查资料,解决了该问题。

同时我对MATLAB有了新的认识。

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

 

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

 

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

七、详细代码

functionvarargout=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',[],...

'gui_Callback',[]);

ifnargin&&ischar(varargin{1})

gui_State.gui_Callback=str2func(varargin{1});

end

ifnargout

[varargout{1:

nargout}]=gui_mainfcn(gui_State,varargin{:

});

else

gui_mainfcn(gui_State,varargin{:

});

end

functionuntitled1_OpeningFcn(hObject,eventdata,handles,varargin)

handles.output=hObject;

guidata(hObject,handles);

functionvarargout=untitled1_OutputFcn(hObject,eventdata,handles)

varargout{1}=handles.output;

functioncalculate_Callback(hObject,eventdata,handles)

textString=get(handles.text1,'String');

f=eval(textString);

set(handles.matC,'string',num2str(f,'%15.5g'));

functionbutton1_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);

functionbutton2_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);

functionbutton3_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);

functionbutton4_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);

functionbutton5_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);

functionbutton6_Callback(hObject,eventdata,handles)

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

textString=strcat(a,'^-1');

set(handles.text1,'String',textString);

functionbutton7_Callback(hObject,eventdata,handles)

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

textString=strcat(a,'''');

set(handles.text1,'String',textString);

functionmatA_CreateFcn(hObject,eventdata,handles)

ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

functionmatB_CreateFcn(hObject,eventdata,handles)

ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

functionmatC_CreateFcn(hObject,eventdata,handles)

ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

functiontext10_CreateFcn(hObject,eventdata,handles)

ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

functiontext1_CreateFcn(hObject,eventdata,handles)

ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

functionpushbutton11_Callback(hObject,eventdata,handles)

set(handles.text1,'String','');

set(handles.matA,'String','[]');

set(handles.matB,'String','[]');

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

functionpushbutton20_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);

functionpushbutton21_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);

functionpushbutton22_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);

functionpushbutton23_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);

functionpushbutton24_Callback(hObject,eventdata,handles)

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

textString=strcat(a,'.''');

set(handles.text1,'String',textString);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2