ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:474.80KB ,
资源ID:7813186      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7813186.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(matlabGUI矩阵计算器.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

matlabGUI矩阵计算器.docx

1、matlabGUI矩阵计算器matlab-GUI矩阵计算器数学应用软件工具箱开发矩阵计算器姓 名: *学 号:*指导老师: *专 业:* 2014年9月11日一.操作过程1.准备工作在Matlab的主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会显示GUI的设计模板;选择GUI模板中的默认的空白模版Blank GUI(Default)就会显示GUI设计窗口,可以开始设计矩阵计算器了。2.设计过程在GUI界面中加入以下控件:12个文本编辑器(edit text)作为输入矩阵的窗口;216个用以执行运算的按钮(push button);34个静态文本框(static tex

2、t),其中一个作为显示计算所得结果的窗口,另外3个分别作为表示所输入的矩阵(A、B)以及用来输入标题(矩阵计算器);4加入3个按钮组(button group)分别圈住:a.1中的2个控件及3中的A、B;b.2中的16个计算按钮;c.3中的显示计算结果的窗口。分别双击以上25个控件修改其string属性如下:1中的改为空白(将原有的“edit text”删掉);2中的改为对应的矩阵运算或文字,如“+”、“/R”、“秩”、“逆”等(见图1);3中的按顺序改为空白、“A”、“B”以及“矩阵计算器”;4中的按钮组分别改为“输入区”、“功能区”、“输出区”。对每个控件分别单击右键,选择“view ca

3、llback”“callback” “保存”,在每个控件的函数后加入代码(见附件)。此外,还需要做的小变动有: 1中修改string属性时通过修改fontWeight及fontSize把string的字图4输入的A、B矩阵必须是维数相同,否则不能实现按元素乘(除)的运算。如输入不同维数的矩阵且进行按元素乘的运算,则会提示出错,提示信息同图3。 3 矩阵相乘:输入A=1 2 3;4 5 6;7 8 9,B=1 4 7;2 5 8;3 6 9,按下“*”按钮,输出区显示计算结果如图5所示:图5输入的A、B矩阵必须满足前者的列数等于后者的行数,否则不能实现矩阵的乘法运算,出现错误提示如图6所示:图6

4、 4 左除(右除):输入A=1 2 3;4 5 6;7 8 9,B=1 4 7;2 5 8;3 6 9,按下“/L”按钮,输出区显示计算结果如图7所示:图7输入的A、B矩阵必须满足行相等,否则出现错误提示如图8所示: 图8 5 矩阵转置: 输入矩阵A=1 2 3;4 5 6;7 8 9,点击“A”按钮,显示结果如图9所示:图9 6 矩阵求秩:输入矩阵A=1 2 3;4 5 6;7 8 9,点击“秩”按钮,输出区显示计算结果如图10所示:图10 7 矩阵求逆:输入矩阵A=1 2 4;4 5 6;7 8 9,按下“逆”按钮,输出区显示计算结果如图11所示:图11本矩阵计算器求逆功能只针对非奇异方阵

5、,如果输入矩阵A为奇异阵或非方阵,均会提示错误A为非方阵时提示错误如图12:图12A为奇异阵时提示错误如图13:图13 8 行列式:输入A=1 2 4;4 5 6;7 8 9,按下“行列式”按钮,输出区显示计算结果如图14所示:图14输入矩阵A必须为方阵,否则无法计算行列式,提示错误如图15所示:图15 9 范数: 输入矩阵A=1 2 3;4 5 6;7 8 9,按下“范数”按钮,输出区显示计算结果如16所示:图16 由于设计者能力有限,本计算器默认计算矩阵的2范数,其他范数暂不能计算。 10 LU分解: 输入矩阵A=1 2 3;4 5 6;4 2 6,按下“LU”按钮,输出区显示计算结果如图

6、17所示:图17其中,输出前三行为L矩阵,中间三行为U矩阵,后三行为P矩阵 11 线性方程组求解:AX=B 输入A=1 2 3;4 5 6;7 8 9(系数矩阵),B=4;5;6(常数项),按下“Ax=B”按钮,输出区显示计算结果图18所示:图18本部分输入限制较大,须详细说明。第一,系数矩阵必须是非奇异的方阵,否则方程组解不存在或不唯一,本计算器无法求解。第二,常数项必须与系数矩阵行数相同,否则也会出现错误提示 12 最简行阶梯形矩阵: 输入矩阵A=1 2 3;4 5 6;7 8 9,分别按下“阶梯形”按钮,输出区显示计算结果如图19所示:图19 13 特征值:输入矩阵A=1 2 3;4 5

7、 6;7 8 9,按下“特征值”按钮,输出区显示计算结果如图20所示:图20附录:主要代码%矩阵相加a=str2num(get(handles.edit1,string);b=str2num(get(handles.edit2,string);ia ja=size(a);ib jb=size(b);if ia = ib | ja = jb |(ia = ib & ja = jb)%判断A、B是否满足相加条件 c=error.Matrix dimensions must agree.; set(handles.text1,String,c) guidata(hObject, handles);e

8、lse result = 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,string);ia ja=size(a);ib jb=size(b);if ia = ib | ja = jb |(ia = ib & ja = jb)%判断A、B是否满足相减条件 c=error.Matrix dimensions must agree.; set(

9、handles.text1,String,c) guidata(hObject, handles);else result = 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,string);ia ja=size(a);ib jb=size(b);if ia = ib | ja = jb |(ia = ib & ja = jb)%判断A、B是

10、否满足点乘条件 c=error.Matrix dimensions must agree.; set(handles.text1,String,c) guidata(hObject, handles);else result = 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,string);ia ja=size(a);ib jb=size

11、(b);if ja = ib %判断A、B是否满足相乘条件 c=error.Inner matrix dimensions must agree.; set(handles.text1,String,c) guidata(hObject, handles);else result = 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,strin

12、g);ia ja=size(a);ib jb=size(b);if ia = ib | ja = jb |(ia = ib & ja = jb)%判断A、B是否满足点除条件 c=error.Matrix dimensions must agree.; set(handles.text1,String,c) guidata(hObject, handles);else result = a./b ; c= num2str(result); set(handles.text1,String,c) guidata(hObject, handles);end%矩阵左除a=str2num(get(han

13、dles.edit1,string);b=str2num(get(handles.edit2,string);ia ja=size(a);ib jb=size(b);if ia = ib %判断A、B是否满足左除条件 c=error.Matrix dimensions must agree.; set(handles.text1,String,c) guidata(hObject, handles);else result = ab ; c= num2str(result); set(handles.text1,String,c) guidata(hObject, handles);end%矩

14、阵右除a=str2num(get(handles.edit1,string);b=str2num(get(handles.edit2,string);ia ja=size(a);ib jb=size(b);if ia = ib %判断A、B是否满足右除条件 c=error.Matrix dimensions must agree.; set(handles.text1,String,c) guidata(hObject, handles);else result = a/b ; c= num2str(result); set(handles.text1,String,c) guidata(hO

15、bject, handles);end%矩阵求秩a=str2num(get(handles.edit1,string);c=a;set(handles.text1,string,num2str(c) a=str2num(get(handles.edit1,string); result =rank(a) ; c= num2str(result); set(handles.text1,String,c) guidata(hObject, handles);%求逆a=str2num(get(handles.edit1,string);ia ja=size(a);if ia= ja %判断A是否为方

16、阵 c=error.Matrix dimensions must agree.; set(handles.text1,String,c) guidata(hObject, handles);else if abs(det(a)1e-6 %判断A是否为奇异阵 c=error.Matrix is singular to working precision.; set(handles.text1,String,c) guidata(hObject, handles); else result = inv(a) ; c = num2str(result); set(handles.text1,Stri

17、ng,c) guidata(hObject, handles); endend%求行列式a=str2num(get(handles.edit1,string);ia ja=size(a);if ia = ja %判断A是否为方阵 c=error.Matrix dimensions must agree.; set(handles.text1,String,c) guidata(hObject, handles);else result = det(a) ; c= num2str(result); set(handles.text1,String,c) guidata(hObject, hand

18、les);end%求2-范数a=str2num(get(handles.edit1,string);result = norm(a);c = num2str(result);set(handles.text1,String,c)guidata(hObject, handles)%求LU分解a=str2num(get(handles.edit1,string);L,U,P=lu(a);result = L;U;P ;c= num2str(result);set(handles.text1,String,c)guidata(hObject, handles)%求AX=Ba=str2num(get(

19、handles.edit1,string);b=str2num(get(handles.edit2,string);ia ja=size(a);ib jb=size(b);if ia = ib c=error.; set(handles.text1,String,c) guidata(hObject, handles);else if ia =ja %判断A是否为方阵 c=error.Matrix must be square.; set(handles.text1,String,c) guidata(hObject, handles); else if det(a) = 0 %判断A是否为奇

20、异阵 c=error.Matrix is singular to working precision.; set(handles.text1,String,c) guidata(hObject, handles); else result = ab ; c = num2str(result); set(handles.text1,String,c) guidata(hObject, handles); end endenda=str2num(get(handles.edit1,string);result = rref(a);c= num2str(result);set(handles.tex

21、t1,String,c)guidata(hObject, handles);%求特征值a=str2num(get(handles.edit1,string);ia ja=size(a);if ia = ja %判断A是否为方阵 c=error.Matrix must be square .; set(handles.text1,String,c) guidata(hObject, handles);else result = eig(a) ; c= num2str(result); set(handles.text1,String,c) guidata(hObject, handles);end

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1