基于MATLAB的简易矩阵计算器_第1页
基于MATLAB的简易矩阵计算器_第2页
基于MATLAB的简易矩阵计算器_第3页
基于MATLAB的简易矩阵计算器_第4页
基于MATLAB的简易矩阵计算器_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB程序设计程序设计报告设计题目:简易矩阵计算器班 级:021231姓 名:余颖智学 号:02123021目录1. 设计目标2. 设计内容3. 设计思想4. 设计说明5. 设计步骤及程序代码6. 运行计算器7. 总结1. 设计目标1.熟悉MATLAB的主要控件使用方法。2.熟悉MATLAB的GUI设计流程。2.设计内容设计一个简易的矩阵计算器,通过对简单应用矩阵计算器的设计,编制、调试实现矩阵相加减,矩阵的转置等简单运算,以学习应用MATLAB编写程序原理,加深对MATLAB的学习及应用。3.设计思想基于MATLAB中GUI界面的设计,通过创建类成员函数成员变量,编辑控件创建消息映射,调用信息函数完成数据的输入输出,实现计算功能。生成简单的应用软件。4.设计说明1) 包含的功能有:加、减、乘、转置等。2) 输入的原始数据分别为A或B矩阵,分别显示在不同标签中,运算的结果则显示在输出部分。3) 计算功能基本上是用系统内部函数。4) 程序能够自动判断输入数据的正确性,如不能输入(1)。5.设计步骤及只要代码1) 打开MATLAB,点击,出现GUI的2) 设计计算器版面直至3) 对功能键进行设计执行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 + 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 | 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(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=iBR=error.Inner matrix dimensions must agree.;set(handles.Answer,String,R)guidata(hObject, handles);elseresult = 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.; set(handles.Answer,String,R) guidata(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);result = A .* B ;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);result = A ./ B ;R = num2str(result);set(handles.Answer,String,R)guidata(hObject, handles);执行A的转置,其执行代码如下A = eval(get(handles.Matrix_A,String);result = 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, handles);else result = A / B ; 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 = det(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 to 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); endend执行求A的非共轭转置,其执行代码如下A = eval(get(handles.Matrix_A,String);result = A. ;R = num2str(result);set(handles.Answer,String,R)guidata(hObject, handles); 执行求解系数阵为方阵且非奇异的线性方程组,其执行代码如下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.; set(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 endend 执行求A的秩,其执行代码如下 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) guidata(hObject, handles);elseresult = 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(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 = 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) 执行计算矩阵范围(默认为2范数),其执行代码如下A = eval(get(handles.Matrix_A,String);result = norm(A);R = num2str(result);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 = rref(A);R = num2str(result);set(handles.Answer,String,R)guidata(hObject, handles); 4)对输出进行设计 输出框内有新添加的,使经过计算后的式子通过输出框显示。6.运行计算器 A+BA-BA*BA/LBA.*BA./BAA/Rdet(A)inv(A)A.Ax=BR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论