资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
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.;
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号