版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、17EAST CHINA INSTITUTE OF TECHNOLOGY数学应用软件工具箱开发矩阵计算器姓 名:*指导老师:*业: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中的按钮组分别改为“输入区”、"功能区”、“输出区”
3、。 对每个控件分别单击右键,选择“vi旳callback“callback” - “保 存”,在每个控件的函数后加入代码(见附件)。 此外,还需要做的小变动有:1中修改string属性时通过修改fontWeight及fontSize把string的字符 粗细、字号也一并修改了。2分别双击2个文本编辑器(edit text)将其max属性取值为100或更大的值, 以使编辑器有滚动条,方便显示输入的维数比较大的矩阵。3双击计算结果窗口将其style改为listbox,也用于显示维数比较大的计算 结果。4还可修改各控件的backgroundcolor (背景色)、HorizontalAligment
4、 (对齐 方式)等其他属性以美化界面。 保存运行的结果如下:图1二.功能简介1 功能概述此矩阵计算器能够实现一些基本的矩阵运算,包括对单个矩阵的运算以及对 两个矩阵的运算。其中,对于两个矩阵的运算有:力口、减、乘、除(左除、右除)、按元素乘、 按元素除以及求解线性方程组;对于単个矩阵的运算有:转置、求秩、求逆、计 算行列式、求2范数、LU分解、最简阶梯阵化简、求特征值等。计算过程中,矩阵的输入方式有两种:1与MATLAB中矩阵输入方式类似,即:矩阵行中的元素以空格或逗号间隔;矩 阵行之间以分号间隔;整个元素列表用方括号括起來。2为方便计算,可直接输入每行的元素,行之间用回车间隔,每行的元素之间
5、用 空格间隔即可。(注:本报告为能把输入的矩阵完全显示出來,选择第一种输入方式)2.功能详细描述1矩阵相加(减)输入A二1 2 3;4 5 6;7 8 9, B二1 4 7;2 5 8;3 6 9,按下 “ + ” 按钮, 输出区显示计算结果如图2所示:3Q juzben矩阵计算器洛入区A1 2 3;4 5 6;7 8 9B1 4 7;2 5 8:3 6 9-功純区一輸岀区4图2输入的A、B矩阵必须是维数相同,否则不能实现相加运算。如输入不同维 数的矩阵且进行相加运算,则会提示出错,如图3所示:EP旦矩阵计算器祐入区1 2 3;4 5 6;7 8 91 4;5 6;7 9冷岀区+-*/1/I
6、F/D IA'error. Matrix dimensions must两矩阵相减的运算过程与相加运算类似,在此不再赘述。2点乘(除)输入 A二1 2 3;4 5 6;7 8 9, B二1 4 7;2 5 8;3 6 9,按下 “* 按钮, 输出区显示计算结果如图4所示:Q juzhen矩阵计算器愉入区A1 2 3;4 5 6;7 8 9B1 4 7;2 5 8;3 6 9功钝区謝岀区输入的A、B矩阵必须是维数相同,否则不能实现按元素乘(除)的运算。如输入不同维数的矩阵且进行按元素乘的运算,则会提示出错,提示信息同图3o3矩阵相乘:输入A二1 2 3;4 5 6;7 8 9, B二1
7、4 7;2 5 8;3 6 9,按下 “*” 按钮, 输出区显示计算结果如图5所示:矩阵计算器输入区A1 2 3;4 5 6;7 8 97B(1 4 7;2 5 8;3 6 9功能区f 输岀区10输入的A、B矩阵必须满足前者的列数等于后者的行数,否则不能实现矩阵 的乘法运算,出现错误提示如图6所示:图64左除(右除):输入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所示:矩阵计算器厂綁入区功能区厂宙岀区图85矩阵转置:输入矩阵A=l 2 3;4
8、5 6;7 8 9,点击“A' ”按钮,显示结果如图9所示:矩阵计算器输入区输出区1 4 72 5 83 6 96矩阵求秩:输入矩阵A二1 2 3;4 5 6;7 8 9,点击“秩”按钮,输出区显示计算结果 如图10所示:矩阵计算器输入区功链区-输岀区图107矩阵求逆:输入矩阵A二1 2 4;4 5 6;7 8 9,按下“逆”按钮,输出区显示计算结果 如图11所示:愉入区矩阵计算器厂输岀区功能区-4.66672.6667-26.3333-3.33331 2 1图11本矩阵计算器求逆功能只针对非奇异方阵,如果输入矩阵A为奇异阵或非方阵,均会提示错误A为非方阵时提示错误如图12:图12A为
9、奇异阵时提示错误如图13:Qiuzhen; 02:! (mA矩阵计算器输入区输岀区功能区3H0error.Matrix is singular to wor(图138行列式:输入A二1 2 4;4 5 6;7 8 9,按下“行列式”按钮,输出区显示计算结果 如图14所示:Bi入区矩阵计算器厂功能区输出区图14输入矩阵A必须为方阵,否则无法计算行列式,提示错误如图15所示:Q juzhen:二f(3输入区矩阵计算器飽出区-功能区error Matrix dimensions mustA'图159范数:输入矩阵A二1 2 3;4 5 6;7 8 9,按下“范数”按钮,输出区显示计算结 果如
10、16所示:图16由于设计者能力有限,本计算器默认计算矩阵的2范数,其他范数暂不能计 算。10> LU分解:输入矩阵A二1 2 3;4 5 6;4 2 6,按下“LU”按钮,输出区显示计算结果 如图17所示:M ju7hen矩阵计算器尬入区輸出区功逮区iLuj附梯形转征伯图17其中,输出前三行为L矩阵,中间三行为U矩阵,后三行为P矩阵11>线性方程组求解:AX=B输入 A二12 3;4 5 6;7 8 9(系数矩阵),B二4;5;6(常数项),按下 “Ax二B” 按钮,输出区显示计算结果图18所示:12Q ushcn® S3矩阵计算器粉入区输岀区图18本部分输入限制较大,须
11、详细说明。第一,系数矩阵必须是非奇异的方阵, 否则方程组解不存在或不唯一,本计算器无法求解。第二,常数项必须与系数矩 阵行数相同,否则也会出现错误提示12最简行阶梯形矩阵:输入矩阵A二1 2 3;4 5 6;7 8 9,分别按下“阶梯形”按钮,输出区显示 计算结果如图19所示:Q iuzben矩阵计算器纽入区功链区输岀区图1913特征值:输入矩阵A二1 2 3;4 5 6;7 8 9,按下“特征值”按钮,输岀区显示计算 结果如图20所示:I o J G)矩阵计算器編入区渝岀区一图2011附录:主要代码%矩阵相加a=str2num(get (handles editl,、string,);b=s
12、tr2num(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 textl, ' String,, c) guidata(hObject, handles);elseresult 二 a+b ;c二 num2str(result):set (handles textl,
13、9; String,, c) guidata(hObject, handles);end紈矩阵相减a=str2num(get (handles editl,、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 textl, ' String,
14、, c) guidata(hObject, handles);elseresult = ab ;c二 num2str(result):set (handles textl, ' String,, c) guidata(hObject, handles);end勰矩阵点乘a=str2num(get (handles editl,、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是否满足点乘条件
15、 c二 error Matrix dimensions must agree'set (handles textl, ' String,, c)guidata(hObject, handles);elseresult 二 a. *b ;c二 num2str(result):set (handles textl, ' String,, c) guidata(hObject, handles);end陇矩阵相乘a=str2num(get (handles editl, ' string');b=str2num(get (handles edit2, '
16、; string');ia ja二size(a);ib jb=size(b);if ja ' ib%判断A、B是否满足相乘条件c二 errorInner matrix dimensions must agree'set (handles textl, ' String,, c) guidata(hObject, handles);elseresult = a*b ;c二 num2str(result):set (handles textl, ' String,, c) guidata(hObject, handles);end陇矩阵点除a=str2num
17、(get (handles editl, ' 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 textl, ' String,, c) guidata(hObject, handles);elseresult 二 a.
18、/b ;c二 num2str(result):set (handles textl, ' String,, c) guidata(hObject, handles);end陇矩阵左除a=str2num(get (handles editl, ' string');b=str2num(get (handles edit2, ' string');ia ja二size(a);ib jb=size(b);if ia 二ib %判断人、B是否满足左除条件c二 error Matrix dimensions must agree' set (handles
19、 textl,、String,, c) guidata(hObject, handles);elseresult 二 ab ;c二 num2str(result):set (handles textl,、String,, c) guidata(hObject, handles);end紈矩阵右除a=str2num(get (handles editl,、string'); b=str2num(get(handles edit2,、string');ia ja二size(a);ib jb=size(b);if ia ' ib %判断人、B是否满足右除条件 c二 error
20、 Matrix dimensions must agree' set (handles textl,、String,, c) guidata(hObject, handles);elseresult 二 a/b ;c二 num2str(result):set (handles textl,、String,, c) guidata(hObject, handles);end紈矩阵求秩a=str2num(get (handles editl,、string');c二a'set(handles textl, ' string' , num2str(c)a=st
21、r2num(get(handles editl, ' string'); result =rank(a);c二 num2str(resuIt);set (handles textl, ' String' , c)guidata(hObject, handles);%求逆a=str2num(get (handles editl,、string');ia ja二size(a);if ia= ja%判断A是否为方阵c二 error Matrix dimensions must agree' set (handles textl,、String,, c)
22、 guidata(hObject, handles);elseif abs(det(a)<le-6%判断A是否为奇异阵c二'error Matrix is singular to working precision, set (handles textl, ' String' , c) guidata(hObject, handles);elseresuIt 二 inv(a);c 二 num2str(resuIt);set (handles textl, ' String' , c) guidata(hObject, handles);endend
23、%求行列式 a=str2num(get (handles editl,、string');ia ja二size(a);if ia 二ja%判断A是否为方阵c二 error Matrix dimensions must agree'set (handles textl, ' String,, c)guidata(hObject, handles);elseresult 二 det(a);c二 num2str(result):set (handles textl, ' String,, c) guidata(hObject, handles);end觥求2-范数 a
24、=str2num(get (handles editl,、string');result 二 norm(a):c 二 num2str(result):set (handles textl, ' String,, c)guidata(hObject, handles)%求切分解a=str2num(get (handles editl,、string');L, U, P=lu(a);result 二L;U;P;c= num2str(resuIt);set (handles textl, ' String,, c)guidata(hObject, handles)%求人乂二Ba=str2num(get (handles editl,、string,);b=str2num(get(handles edit2,、string,);ia ja二size(a);ib jb=size(b);if ia ibc二 error';set (handles textl, ' String,, c)gui
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年初中作文开头 说课稿
- 2025-2026学年布艺杯垫说课稿
- 2025-2026学年大班幼儿智力游戏说课稿
- 工业供气工岗前岗后考核试卷含答案
- 汽轮机部套装配调试工安全文明评优考核试卷含答案
- 数据中心运行维护管理员创新应用竞赛考核试卷含答案
- 衡器装配调试工岗前核心能力考核试卷含答案
- 2025-2026学年合作说课稿中班语言
- 2025-2026学年大班分成游戏说课稿
- 水生植物疫病检疫员工作规范能力考核试卷含答案
- 26新五年级上册语文第一次月考检测卷1-2单元
- 【2026公开课】Unit 2 My friends PA Let's learn 教学课件
- IEC 60335-2-9-2024 中文版 家用和类似用途电器安全 烤箱、灶、炉及类似器具特殊要求
- 《5. 睡眠要充足》课件2
- 劲性钢骨梁柱施工方案
- 《碳中和导论》课件-第四章 储能技术与绿色燃料
- 雨课堂学堂在线学堂云《人工智能时代的创新思维(北京理工)》单元测试考核答案
- (2026年)经导管主动脉瓣置换术(TAVR)患者的麻醉管理课件
- 托盘车安全知识培训内容课件
- 2025年全国统一高考数学试卷(全国一卷)含答案
- 财产变更协议书
评论
0/150
提交评论