基于MATLAB的简易矩阵计算器.docx

上传人:小飞机 文档编号:3384840 上传时间:2023-03-12 格式:DOCX 页数:13 大小:38.79KB
返回 下载 相关 举报
基于MATLAB的简易矩阵计算器.docx_第1页
第1页 / 共13页
基于MATLAB的简易矩阵计算器.docx_第2页
第2页 / 共13页
基于MATLAB的简易矩阵计算器.docx_第3页
第3页 / 共13页
基于MATLAB的简易矩阵计算器.docx_第4页
第4页 / 共13页
基于MATLAB的简易矩阵计算器.docx_第5页
第5页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于MATLAB的简易矩阵计算器.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的简易矩阵计算器.docx(13页珍藏版)》请在三一办公上搜索。

1、基于MATLAB的简易矩阵计算器MATLAB程序设计 程序设计报告 设计题目:简易矩阵计算器 班 级:021231 姓 名:余颖智 学 号:02123021 1 目录 1. 设计目标 2. 设计内容 3. 设计思想 4. 设计说明 5. 设计步骤及程序代码 6. 运行计算器 7. 总结 2 1. 设计目标 1.熟悉MATLAB的主要控件使用方法。 2.熟悉MATLAB的GUI设计流程。 2.设计内容 设计一个简易的矩阵计算器,通过对简单应用矩阵计算器的设计,编制、调试实现矩阵相加减,矩阵的转置等简单运算,以学习应用MATLAB编写程序原理,加深对MATLAB的学习及应用。 3.设计思想 基于M

2、ATLAB中GUI界面的设计,通过创建类成员函数成员变量,编辑控件创建消息映射,调用信息函数完成数据的输入输出,实现计算功能。生成简单的应用软件。 4.设计说明 1) 包含的功能有:加、减、乘、转置等。 2) 输入的原始数据分别为A或B矩阵,分别显示在不同标签中,运算的结果则显示在输出部分。 3) 计算功能基本上是用系统内部函数。 4) 程序能够自动判断输入数据的正确性,如不能输入。 5.设计步骤及只要代码 1) 打开MATLAB,点击,出现GUI的3 2) 设计计算器版面直至4 3) 对功能键进行设计 执行A矩阵加B矩阵,其执行代码如下 A = eval(get(handles.Matrix

3、_A,String); B = eval(get(handles.Matrix_B,String); iA jA=size(A); iB jB=size(B); if iA = iB | jA = jB |(iA = iB & jA = jB) R=error.Matrix dimensions must agree.; set(handles.Answer,string,R) guidata(hObject, handles); else result=A + B ; R =num2str(result); set(handles.Answer,string,R) guidata(hObje

4、ct, handles); end 5 执行A矩阵减B矩阵,其执行代码如下 A = eval(get(handles.Matrix_A,String); B = eval(get(handles.Matrix_B,String); iA jA=size(A); iB jB=size(B); if iA = iB | jA = jB |(iA = iB & jA = jB) R=error.Matrix dimensions must agree.; set(handles.Answer,String,R) guidata(hObject, handles); else result = A -

5、 B ; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); end 执行A矩阵与B矩阵相乘,其执行代码如下 A = eval(get(handles.Matrix_A,String); B = eval(get(handles.Matrix_B,String); iA jA=size(A); iB jB=size(B); if jA=iB R=error.Inner matrix dimensions must agree.; set(handles.Answer,String,R) gui

6、data(hObject, handles); else result = A * B ; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); end 执行A右除B矩阵,其执行代码如下 A = eval(get(handles.Matrix_A,String); B = eval(get(handles.Matrix_B,String); iA jA=size(A); iB jB=size(B); if iA=iB 、 R=error.Matrix dimensions must agree.

7、; set(handles.Answer,String,R) guidata(hObject, handles); else 6 result = A B ; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); end 执行A.*B,其执行代码如下 A = eval(get(handles.Matrix_A,String); B = eval(get(handles.Matrix_B,String); result = A .* B ; R = num2str(result); set(han

8、dles.Answer,String,R) guidata(hObject, handles); 执行A./B,其执行代码如下 A = eval(get(handles.Matrix_A,String); B = eval(get(handles.Matrix_B,String); result = A ./ B ; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); 执行A的转置,其执行代码如下 A = eval(get(handles.Matrix_A,String); result =

9、A ; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); 执行A右除B,其执行代码如下 A = eval(get(handles.Matrix_A,String); B = eval(get(handles.Matrix_B,String); iA jA=size(A); iB jB=size(B); if iA=iB R=error.Matrix dimensions must agree.; set(handles.Answer,String,R) guidata(hObject, ha

10、ndles); else result = A / B ; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); end 7 执行求A的行列式,其执行代码如下 A = eval(get(handles.Matrix_A,String); iA jA=size(A); if iA =jA R=error.Matrix must be square.; set(handles.Answer,String,R) guidata(hObject, handles); else result = det(

11、A) ; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); end 执行求A的逆,其执行代码如下 A = eval(get(handles.Matrix_A,String); iA jA=size(A); if iA =jA R=error.Matrix must be square.; set(handles.Answer,String,R) guidata(hObject, handles); else if det(A) = 0 R=error.Matrix is singular t

12、o working precision.; set(handles.Answer,String,R) guidata(hObject, handles); else result = inv(A) ; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); end end 执行求A的非共轭转置,其执行代码如下 A = eval(get(handles.Matrix_A,String); result = A. ; R = num2str(result); set(handles.Answer,St

13、ring,R) guidata(hObject, handles); 8 执行求解系数阵为方阵且非奇异的线性方程组,其执行代码如下 A = eval(get(handles.Matrix_A,String); B = eval(get(handles.Matrix_B,String); iA jA=size(A); iB jB=size(B); if iA = iB R=error.; set(handles.Answer,String,R) guidata(hObject, handles); else if iA =jA R=error.Matrix must be square.; se

14、t(handles.Answer,String,R) guidata(hObject, handles); else if det(A) = 0 R=error.Matrix is singular to working precision.; set(handles.Answer,String,R) guidata(hObject, handles); else result = AB ; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); end end end 执行求A的秩,其执行代码如

15、下 A = eval(get(handles.Matrix_A,String); result = rank(A) ; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); 执行求A的平方,其执行代码如下 A = eval(get(handles.Matrix_A,String); iA jA=size(A); if iA =jA R=error.Inputs must be a scalar and a square matrix.; set(handles.Answer,String,R)

16、guidata(hObject, handles); else 9 result = A2 ; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); end 执行求A的立方,其执行代码如下 A = eval(get(handles.Matrix_A,String); iA jA=size(A); if iA =jA R=error.Inputs must be a scalar and a square matrix.; set(handles.Answer,String,R) guidata(

17、hObject, handles); else result = A3 ; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); end 执行求A的特征值,其执行代码如下 A = eval(get(handles.Matrix_A,String); iA jA=size(A); if iA =jA R=error.Matrix must be square.; set(handles.Answer,String,R) guidata(hObject, handles); else result

18、= eig(A) ; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); end 执行求A开平方根,其执行代码如下 A = eval(get(handles.Matrix_A,String); result = sqrt(A); R = num2str(result); set(handles.Answer,String,R) 执行计算矩阵范围,其执行代码如下 A = eval(get(handles.Matrix_A,String); result = norm(A); R = num2st

19、r(result); 10 set(handles.Answer,String,R) guidata(hObject, handles); 执行对A的分解,其执行代码如下 A = eval(get(handles.Matrix_A,String); L U = lu(A); result = L;U; R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); 执行将矩阵A化为最简阶梯矩阵,其执行代码如下 A = eval(get(handles.Matrix_A,String); result =

20、rref(A); R = num2str(result); set(handles.Answer,String,R) guidata(hObject, handles); 4)对输出进行设计 输出框内有新添加的,使经过计算后的式子通过输出框显示。 6.运行计算器 A+B 11 A-B A*B 12 A/LB A.*B 13 A./B A 14 A/R det(A) 15 inv(A) A. 16 Ax=B Rank(A) 17 A2 A3 18 eig(A) Sqrt(A) 19 Norm(A) Lu(A) 20 rref(A) 7.总结 课程设计到此已告一段落,经过与同学的交流和上网搜寻资料,在老师给与的时间内,设计基本完成。 在本次设计中,学到很多有用的知识,也积累了不少宝贵的经验。从一开始对MATLAB的模糊认识,到现在能用它制作一个简易矩阵计算器,对我个人来说是一个进步,因为在此期间遇到过很多难题,但还是一一去解决了,比如说对计算器的排版,对执行代码的设计等等。 设计完毕留给我的是欣喜,不过计算器仍存在一些不足与漏洞,有待以后去不断完善,并且我知道自己要学的东西还多着呢,希望今后多加学习,争取达到做我想做的东西的境界。 21

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号