matlab gui矩阵计算器,matlab-gui矩阵计算器.doc

41528d3028836879cd698677c3999917.gifmatlab-gui矩阵计算器.doc

数学应用软件工具箱开发——矩阵计算器姓名:***学号:********指导老师:***专业:********2014年9月11日1一.操作过程1.准备工作①在Matlab的主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会显示GUI的设计模板;②选择GUI模板中的默认的空白模版BlankGUI(Default)就会显示GUI设计窗口,可以开始设计矩阵计算器了。2.设计过程①在GUI界面中加入以下控件:1>2个文本编辑器(edittext)作为输入矩阵的窗口;2>16个用以执行运算的按钮(pushbutton);3>4个静态文本框(statictext),其中一个作为显示计算所得结果的窗口,另外3个分别作为表示所输入的矩阵(A、B)以及用来输入标题(矩阵计算器);4>加入3个按钮组(buttongroup)分别圈住:a.1>中的2个控件及3>中的A、B;b.2>中的16个计算按钮;c.3>中的显示计算结果的窗口。②分别双击以上25个控件修改其string属性如下:1>中的改为空白(将原有的“edittext”删掉);2>中的改为对应的矩阵运算或文字,如“+”、“/R”、“秩”、“逆”等(见图1);3>中的按顺序改为空白、“A”、“B”以及“矩阵计算器”;4>中的按钮组分别改为“输入区”、“功能区”、“输出区”。③对每个控件分别单击右键,选择“viewcallback”→“callback”→“保存”,在每个控件的函数后加入代码(见附件)。④此外,还需要做的小变动有:1>②中修改string属性时通过修改fontWeight及fontSize把string的字符粗细、字号也一并修改了。2>分别双击2个文本编辑器(edittext)将其max属性取值为100或更大的值,以使编辑器有滚动条,方便显示输入的维数比较大的矩阵。3>双击计算结果窗口将其style改为listbox,也用于显示维数比较大的计2算结果。4>还可修改各控件的backgroundcolor(背景色)、HorizontalAligment(对齐方式)等其他属性以美化界面。⑤保存运行的结果如下:图1二.功能简介1.功能概述此矩阵计算器能够实现一些基本的矩阵运算,包括对单个矩阵的运算以及对两个矩阵的运算。其中,对于两个矩阵的运算有:加、减、乘、除(左除、右除)、按元素乘、按元素除以及求解线性方程组;对于単个矩阵的运算有:转置、求秩、求逆、计算行列式、求2范数、LU分解、最简阶梯阵化简、求特征值等。计算过程中,矩阵的输入方式有两种:1>与MATLAB中矩阵输入方式类似,即:矩阵行中的元素以空格或逗号间隔;矩阵行之间以分号间隔;整个元素列表用方括号括起来。2>为方便计算,可直接输入每行的元素,行之间用回车间隔,每行的元素之间用空格间隔即可。(注:本报告为能把输入的矩阵完全显示出来,选择第一种输入方式)2.功能详细描述1>矩阵相加(减)输入A=[123;456;789],B=[147;258;369],按下“+”按钮,输出区显示计算结果如图2所示:3图2输入的A、B矩阵必须是维数相同,否则不能实现相加运算。如输入不同维数的矩阵且进行相加运算,则会提示出错,如图3所示:图3两矩阵相减的运算过程与相加运算类似,在此不再赘述。2>点乘(除)输入A=[123;456;789],B=[147;258;369],按下“.*”按钮,输出区显示计算结果如图4所示:4图4输入的A、B矩阵必须是维数相同,否则不能实现按元素乘(除)的运算。如输入不同维数的矩阵且进行按元素乘的运算,则会提示出错,提示信息同图3。3>矩阵相乘:输入A=[123;456;789],B=[147;258;369],按下“*”按钮,输出区显示计算结果如图5所示:图5输入的A、B矩阵必须满足前者的列数等于后者的行数,否则不能实现矩阵的乘法运算,出现错误提示如图6所示:图64>左除(右除):输入A=[123;456;789],B=[147;258;369],按下“/L”按钮,输出区显示计算结果如图7所示:5图7输入的A、B矩阵必须满足行相等,否则出现错误提示如图8所示:图85>矩阵转置:输入矩阵A=[123;456;789],点击“A’”按钮,显示结果如图9所示:6图96>矩阵求秩:输入矩阵A=[123;456;789],点击“秩”按钮,输出区显示计算结果如图10所示:图107>矩阵求逆:输入矩阵A=[124;456;789],按下“逆”按钮,输出区显示计算结果如图11所示:图11本矩阵计算器求逆功能只针对非奇异方阵,如果输入矩阵A为奇异阵或非方阵,均会提示错误A为非方阵时提示错误如图12:7图12A为奇异阵时提示错误如图13:图138>行列式:输入A=[124;456;789],按下“行列式”按钮,输出区显示计算结果如图14所示:8图14输入矩阵A必须为方阵,否则无法计算行列式,提示错误如图15所示:图159>范数:输入矩阵A=[123;456;789],按下“范数”按钮,输出区显示计算结果如16所示:9图16由于设计者能力有限,本计算器默认计算矩阵的2范数,其他范数暂不能计算。10>LU分解:输入矩阵A=[123;456;426],按下“LU”按钮,输出区显示计算结果如图17所示:图17其中,输出前三行为L矩阵,中间三行为U矩阵,后三行为P矩阵11>线性方程组求解:AX=B输入A=[123;456;789](系数矩阵),B=[4;5;6](常数项),按下“Ax=B”按钮,输出区显示计算结果图18所示:10图18本部分输入限制较大,须详细说明。第一,系数矩阵必须是非奇异的方阵,否则方程组解不存在或不唯一,本计算器无法求解。第二,常数项必须与系数矩阵行数相同,否则也会出现错误提示12>最简行阶梯形矩阵:输入矩阵A=[123;456;789],分别按下“阶梯形”按钮,输出区显示计算结果如图19所示:图1913>特征值:输入矩阵A=[123;456;789],按下“特征值”按钮,输出区显示计算结果如图20所示:11图2012附录:主要代码%%矩阵相加a=str2num(get(handles.edit1, string ));b=str2num(get(handles.edit2, string ));[iaja]=size(a);[ibjb]=size(b);ifia~=ib|ja~=jb|(ia~=ibset(handles.text1, String ,c)guidata(hObject,handles);elseresult=a+b;c=num2str(result);set(handles.text1, String ,c)guidata(hObject,handles);end%%矩阵相减a=str2num(get(handles.edit1, string ));b=str2num(get(handles.edit2, st

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值