实验二 Matlab矩阵的初等运算
实验目的:掌握Matlab的运算方法 实验内容:
2.1 在Matlab命令窗口输入:
H1=ones(3,2) H2=zeros(2,3) H3=eye(4) 观察以上各输入结果,并在每式的后面标注其含义。
>> format compact
>> H1=ones(3,2),disp('3行2列的全1矩阵') H1 =
1 1 1 1 1 1
3行2列的全1矩阵
>> H2=zeros(2,3),disp('2行3列的全零矩阵') H2 =
0 0 0
0 0 0 2行3列的全零矩阵
>> H3=eye(4),disp('4阶的单位矩阵') H3 =
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 4阶的单位矩阵
?123??1?2.2 已知Q???,P??789?,R??0?,S?3,试把这四个矩阵组合456????为一个大矩阵,看看有几种组合方式?8
>> format compact
>> Q=[1 2 3;4 5 6];P=[7 8 9];R=[1;0]; S=3; >> [Q,R;P,S] ans =
1 2 3 1 4 5 6 0 7 8 9 3 >> [R,Q;P,S] ans =
1 1 2 3 0 4 5 6 7 8 9 3 >> [Q,R;S,P] ans =
1 2 3 1 4 5 6 0 3 7 8 9 >> [R,Q;S,P] ans =
1 1 2 3 0 4 5 6
3 7 8 9 >> [S,P;R,Q] ans =
3 7 8 9 1 1 2 3 0 4 5 6 >> [S,P;Q,R] ans =
3 7 8 9 1 2 3 1 4 5 6 0 >> [P,S;R,Q] ans =
7 8 9 3 1 1 2 3 0 4 5 6 >> [P,S;Q,R] ans =
7 8 9 3 1 2 3 1 4 5 6 0
1
2.4 建立一个字符串向量,删除其中的大写字母。提示:利用find函数和空矩阵。
>> a='ABCDefgijKLMN123' a =
ABCDefgijKLMN123 >> k=find(a>='A'&a<='Z') k =
1 2 3 4 10 11 12 13 >> a(k)=[] a =
efgij123
2.3 在命令窗中分别输入who和whos,观察检查结果是否与2.1-2.4所得结果相符。
>> who
Your variables are:
H1 H2 H3 P Q R S a ans k
>> whos
Name Size Bytes Class Attributes
H1 3x2 48 double H2 2x3 48 double H3 4x4 128 double P 1x3 24 double Q 2x3 48 double R 2x1 16 double S 1x1 8 double a 1x8 16 char ans 3x4 96 double k 1x8 64 double
?1?42.5 已知矩阵S???7??83125?709??,计算以下表达式的结果,体会*,^,sqrtm,162??2113?expm与.*,.^,sqrt,exp的区别。
(1) r1=S^2, r2=2.^S , r3=S.^2, (2) u1=sqrtm(S), v1=u1*u1 (3) u2=sqrt (S), v2=u2.*u2 (4) u3=expm(S), v3=logm(u3) (5) u4=exp(S), v4=log(u4) >> S=[1 3 12 5;4 7 0 9;7 1 6 2;8 2 11 3]
2
S =
1 3 12 5 4 7 0 9 7 1 6 2 8 2 11 3 >> r1=S^2 r1 =
137 46 139 71 104 79 147 110 69 38 142 62 117 55 195 89 >> r2=2.^S r2 =
2 8 4096 32 16 128 1 512 128 2 64 4 256 4 2048 8 >> r3=S.^2 r3 =
1 9 144 25 16 49 0 81 49 1 36 4 64 4 121 9 >> u1=sqrtm(S) u1 =
1.2986 + 1.7799i 0.4954 - 0.2316i 2.0525 - 1.3122i 0.1988 + 0.0151i 2.5282 + 0.0310i -1.5443 + 1.1209i 1.1737 - 0.8736i 0.1302 + 0.1172i 2.0959 + 0.7645i 1.6679 - 0.6304i 0.2883 + 0.0538i 2.9002 - 0.5041i >> v1=u1*u1 v1 =
1.0000 - 0.0000i 3.0000 + 0.0000i 12.0000 - 0.0000i 4.0000 + 0.0000i 7.0000 - 0.0000i 0.0000 - 0.0000i 7.0000 + 0.0000i 1.0000 - 0.0000i 6.0000 + 0.0000i 8.0000 + 0.0000i 2.0000 - 0.0000i 11.0000 >> u2=sqrt (S) u2 =
1.0000 1.7321 3.4641 2.2361 2.0000 2.6458 0 3.0000 2.6458 1.0000 2.4495 1.4142 2.8284 1.4142 3.3166 1.7321
>> u3=expm(S)
3
0.8339 - 0.4347i 2.7620 - 0.8042i 0.4126 + 0.1282i 0.6973 + 0.8391i 5.0000 + 0.0000i 9.0000 + 0.0000i 2.0000 - 0.0000i 3.0000 - 0.0000i u3 =
1.0e+008 *
0.7905 0.3809 1.1893 0.5929 0.9066 0.4369 1.3640 0.6800 0.6128 0.2953 0.9219 0.4596 0.9038 0.4356 1.3599 0.6780 >> v3=logm(u3) v3 =
1.0000 3.0000 12.0000 5.0000 4.0000 7.0000 0.0000 9.0000 7.0000 1.0000 6.0000 2.0000 8.0000 2.0000 11.0000 3.0000 >> u4=exp(S) u4 =
1.0e+005 *
0.0000 0.0002 1.6275 0.0015 0.0005 0.0110 0.0000 0.0810 0.0110 0.0000 0.0040 0.0001 0.0298 0.0001 0.5987 0.0002 >> v4=log(u4) v4 =
1 3 12 5 4 7 0 9 7 1 6 2 8 2 11 3
2.6 对2.5中定义的矩阵S完成以下变换,输出变换后的矩阵: (1) 将矩阵S上下翻转 (2) 将矩阵S左右翻转
(3) 将矩阵S重组为一个2行8列的矩阵 (4) 将矩阵S整体逆时针旋转90° (5) 提取矩阵S对角线上的元素
(6) 建立一个对角阵T,对角线上的元素为S对角线上的元素,其余元素为0 (7) 取出矩阵S的左下三角部分 (8) 取出矩阵S的右上三角部分
(9) 把矩阵S的元素按列取出排成一行
>> S=[1 3 12 5;4 7 0 9;7 1 6 2;8 2 11 3] S =
1 3 12 5 4 7 0 9 7 1 6 2 8 2 11 3
>> fliplr(S) ans =
4
>> flipud(S) ans =
8 2 11 3 7 1 6 2 4 7 0 9 1 3 12 5
相关推荐: