matlabGUI矩阵计算器Word下载.docx
- 文档编号:20941146
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:19
- 大小:474.80KB
matlabGUI矩阵计算器Word下载.docx
《matlabGUI矩阵计算器Word下载.docx》由会员分享,可在线阅读,更多相关《matlabGUI矩阵计算器Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
1>
2个文本编辑器(edittext)作为输入矩阵的窗口;
2>
16个用以执行运算的按钮(pushbutton);
3>
4个静态文本框(statictext),其中一个作为显示计算所得结果的窗口,另外3个分别作为表示所输入的矩阵(A、B)以及用来输入标题(矩阵计算器);
4>
加入3个按钮组(buttongroup)分别圈住:
a.1>
中的2个控件及3>
中的A、B;
b.2>
中的16个计算按钮;
c.3>
中的显示计算结果的窗口。
②分别双击以上25个控件修改其string属性如下:
中的改为空白(将原有的“edittext”删掉);
中的改为对应的矩阵运算或文字,如“+”、“/R”、“秩”、“逆”等(见图1);
中的按顺序改为空白、“A”、“B”以及“矩阵计算器”;
中的按钮组分别改为“输入区”、“功能区”、“输出区”。
③对每个控件分别单击右键,选择“viewcallback”→“callback”→“保存”,在每个控件的函数后加入代码(见附件)。
④此外,还需要做的小变动有:
1>
②中修改string属性时通过修改fontWeight及fontSize把string的字
图4
输入的A、B矩阵必须是维数相同,否则不能实现按元素乘(除)的运算。
如输入不同维数的矩阵且进行按元素乘的运算,则会提示出错,提示信息同图3。
3>
矩阵相乘:
输入A=[123;
456;
789],B=[147;
258;
369],按下“*”按钮,输出区显示计算结果如图5所示:
图5
输入的A、B矩阵必须满足前者的列数等于后者的行数,否则不能实现矩阵的乘法运算,出现错误提示如图6所示:
图6
4>
左除(右除):
369],按下“/L”按钮,输出区显示计算结果如图7所示:
图7
输入的A、B矩阵必须满足行相等,否则出现错误提示如图8所示:
图8
5>
矩阵转置:
输入矩阵A=[123;
789],点击“A’”按钮,显示结果如图9所示:
图9
6>
矩阵求秩:
输入矩阵A=[123;
789],点击“秩”按钮,输出区显示计算结果如图10所示:
图10
7>
矩阵求逆:
输入矩阵A=[124;
789],按下“逆”按钮,输出区显示计算结果如图11所示:
图11
本矩阵计算器求逆功能只针对非奇异方阵,如果输入矩阵A为奇异阵或非方阵,均会提示错误
A为非方阵时提示错误如图12:
图12
A为奇异阵时提示错误如图13:
图13
8>
行列式:
输入A=[124;
789],按下“行列式”按钮,输出区显示计算结果如图14所示:
图14
输入矩阵A必须为方阵,否则无法计算行列式,提示错误如图15所示:
图15
9>
范数:
789],按下“范数”按钮,输出区显示计算结果如16所示:
图16
由于设计者能力有限,本计算器默认计算矩阵的2范数,其他范数暂不能计算。
10>
LU分解:
426],按下“LU”按钮,输出区显示计算结果如图17所示:
图17
其中,输出前三行为L矩阵,中间三行为U矩阵,后三行为P矩阵
11>
线性方程组求解:
AX=B
输入A=[123;
789](系数矩阵),B=[4;
5;
6](常数项),按下“Ax=B”按钮,输出区显示计算结果图18所示:
图18
本部分输入限制较大,须详细说明。
第一,系数矩阵必须是非奇异的方阵,否则方程组解不存在或不唯一,本计算器无法求解。
第二,常数项必须与系数矩阵行数相同,否则也会出现错误提示
12>
最简行阶梯形矩阵:
789],分别按下“阶梯形”按钮,输出区显示计算结果如图19所示:
图19
13>
特征值:
789],按下“特征值”按钮,输出区显示计算结果如图20所示:
图20
附录:
主要代码
%%矩阵相加
a=str2num(get(handles.edit1,'
string'
));
b=str2num(get(handles.edit2,'
[iaja]=size(a);
[ibjb]=size(b);
ifia~=ib|ja~=jb|(ia~=ib&
ja~=jb)%判断A、B是否满足相加条件
c='
error.Matrixdimensionsmustagree.'
;
set(handles.text1,'
String'
c)
guidata(hObject,handles);
else
result=a+b;
c=num2str(result);
end
%%矩阵相减
ja~=jb)%判断A、B是否满足相减条件
result=a-b;
%%矩阵点乘
ja~=jb)%判断A、B是否满足点乘条件
result=a.*b;
%%矩阵相乘
ifja~=ib%判断A、B是否满足相乘条件
error.Innermatrixdimensionsmustagree.'
result=a*b;
%%矩阵点除
ja~=jb)%判断A、B是否满足点除条件
result=a./b;
%%矩阵左除
ifia~=ib%判断A、B是否满足左除条件
result=a\b;
%%矩阵右除
ifia~=ib%判断A、B是否满足右除条件
result=a/b;
%%矩阵求秩
c=a'
set(handles.text1,'
num2str(c))
a=str2num(get(handles.edit1,'
result=rank(a);
%%求逆
ifia~=ja%判断A是否为方阵
ifabs(det(a))<
1e-6%判断A是否为奇异阵
error.Matrixissingulartoworkingprecision.'
else
result=inv(a);
c=num2str(result);
end
%%求行列式
ifia~=ja%判断A是否为方阵
result=det(a);
%%求2-范数
result=norm(a);
c=num2str(result);
guidata(hObject,handles)
%%求LU分解
[L,U,P]=lu(a);
result=[L;
U;
P];
c=num2str(result);
%%求AX=B
ifia~=ib
error.'
ifia~=ja%判断A是否为方阵
error.Matrixmustbesquare.'
ifdet(a)==0%判断A是否为奇异阵
result=rref(a);
guidata(hObject,handles);
%%求特征值
error.Matrixmustbesquare.'
result=eig(a);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlabGUI 矩阵 计算器
![提示](https://static.bdocx.com/images/bang_tan.gif)