百度文库- 让每个人平等地提升自我实验二 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 11 11 13行2列的全1矩阵>> H2=zeros(2,3),disp('2行3列的全零矩阵') H2 =0 0 00 0 02行3列的全零矩阵>> H3=eye(4),disp('4阶的单位矩阵') H3 =1 0 0 00 1 0 00 0 1 00 0 0 14阶的单位矩阵2.2 已知123456⎡⎤=⎢⎥⎣⎦Q,[]789=P,1⎡⎤=⎢⎥⎣⎦R,3=S,试把这四个矩阵组合为一个大矩阵,看看有几种组合方式?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 14 5 6 07 8 9 3>> [R,Q;P,S]ans =1 12 30 4 5 67 8 9 3>> [Q,R;S,P]ans =1 2 3 14 5 6 03 7 8 9>> [R,Q;S,P]ans =1 12 30 4 5 63 7 8 9 >> [S,P;R,Q]ans =3 7 8 91 12 30 4 5 6 >> [S,P;Q,R]ans =3 7 8 91 2 3 14 5 6 0 >> [P,S;R,Q]ans =7 8 9 31 12 30 4 5 6 >> [P,S;Q,R]ans =7 8 9 31 2 3 14 5 6 02.4 建立一个字符串向量,删除其中的大写字母。
提示:利用find函数和空矩阵。
>> a='ABCDefgijKLMN123'a =ABCDefgijKLMN123>> k=find(a>='A'&a<='Z')k =1 2 3 4 10 11 12 13>> a(k)=[]a =efgij1232.3 在命令窗中分别输入who和whos,观察检查结果是否与2.1-2.4所得结果相符。
>> whoYour variables are:H1 H2 H3 P Q R S a ans k>> whosName Size Bytes Class AttributesH1 3x2 48 doubleH2 2x3 48 doubleH3 4x4 128 doubleP 1x3 24 doubleQ 2x3 48 doubleR 2x1 16 doubleS 1x1 8 doublea 1x8 16 charans 3x4 96 doublek 1x8 64 double2.5 已知矩阵131254709716282113⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦S,计算以下表达式的结果,体会*,^,sqrtm,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]1 3 12 54 7 0 97 1 6 28 2 11 3>> r1=S^2r1 =137 46 139 71104 79 147 11069 38 142 62117 55 195 89>> r2=2.^Sr2 =2 8 4096 3216 128 1 512128 2 64 4256 4 2048 8>> r3=S.^2r3 =1 9 144 2516 49 0 8149 1 36 464 4 121 9>> u1=sqrtm(S)u1 =1.2986 + 1.7799i 0.4954 - 0.2316i2.0525 - 1.3122i 0.8339 - 0.4347i0.1988 + 0.0151i 2.5282 + 0.0310i -1.5443 + 1.1209i 2.7620 - 0.8042i1.1737 - 0.8736i 0.1302 + 0.1172i2.0959 + 0.7645i 0.4126 + 0.1282i1.6679 - 0.6304i 0.2883 + 0.0538i2.9002 - 0.5041i 0.6973 + 0.8391i >> v1=u1*u1v1 =1.0000 - 0.0000i 3.0000 + 0.0000i 12.0000 - 0.0000i 5.0000 + 0.0000i4.0000 + 0.0000i 7.0000 - 0.0000i 0.0000 - 0.0000i 9.0000 + 0.0000i7.0000 + 0.0000i 1.0000 - 0.0000i 6.0000 + 0.0000i 2.0000 - 0.0000i8.0000 + 0.0000i 2.0000 - 0.0000i 11.0000 3.0000 - 0.0000i >> u2=sqrt (S)u2 =1.0000 1.7321 3.46412.23612.0000 2.6458 03.00002.6458 1.0000 2.4495 1.41422.8284 1.41423.3166 1.7321>> u3=expm(S)1.0e+008 *0.7905 0.3809 1.1893 0.59290.9066 0.4369 1.3640 0.68000.6128 0.2953 0.9219 0.45960.9038 0.4356 1.3599 0.6780>> v3=logm(u3)v3 =1.0000 3.0000 12.0000 5.00004.0000 7.0000 0.0000 9.00007.0000 1.0000 6.0000 2.00008.0000 2.0000 11.0000 3.0000>> u4=exp(S)u4 =1.0e+005 *0.0000 0.0002 1.6275 0.00150.0005 0.0110 0.0000 0.08100.0110 0.0000 0.0040 0.00010.0298 0.0001 0.5987 0.0002>> v4=log(u4)v4 =1 3 12 54 7 0 97 1 6 28 2 11 32.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 54 7 0 97 1 6 28 2 11 3 >> flipud(S)ans =8 2 11 37 1 6 24 7 0 91 3 12 5>> fliplr(S) ans =5 12 3 19 0 7 42 6 1 73 11 2 8>> reshape(S,2,8)ans =1 7 3 1 12 6 5 24 8 7 2 0 11 9 3>> rot90(S)ans =5 9 2 312 0 6 113 7 1 21 4 7 8 >> diag(S)ans =1763>> T=diag(S)T =1763 >> T=diag(T)T =1 0 0 00 7 0 00 0 6 00 0 0 3 >> tril(S)ans =1 0 0 04 7 0 07 1 6 08 2 11 3 >> triu(S)ans =1 3 12 50 7 0 90 0 6 20 0 0 3>> S(:)'ans =1 4 7 8 3 7 12 12 0 6 11 5 9 2 32.7 已知矩阵A=[1 3 5],B=[2 4 6](1) 求C=A+B,D=A-2,E=B-A>> format compact>> A=[1 3 5],B=[2 4 6]A =1 3 5B =2 4 6 >> C=A+B,D=A-2,E=B-A C =3 7 11D =-1 1 3E =1 1 1 >> %都是按元素群运算(2) 求F1=A*3,F2=A.*B,F3=A./B,F4=A.\B,F5=B.\A,F6=B.^A,F7=2./B,F8=B.\2.>> F1=A*3F1 =3 9 15>> %按矩阵运算>> F2=A.*BF2 =2 12 30>> %按元素群运算A点乘B>> F3=A./BF3 =0.5000 0.7500 0.8333>> %按元素群运算A各个元素右除B>> F4=A.\BF4 =2.0000 1.3333 1.2000>> %按元素群运算A各个元素左除B>> F5=B.\AF5 =0.5000 0.7500 0.8333>> %按元素群运算B各个元素左除A>> F6=B.^AF6 =2 64 7776>> %按元素群运算B各个元素的A次幂>> F7=2./BF7 =1.0000 0.5000 0.3333>> %按元素群运算2右除B>> F8=B.\2F8 =1.0000 0.5000 0.3333>> %按元素群运算B各个元素左除2(3) 求Z1=A*B’,Z2=B’*A观察以上各输出结果,比较各种运算的区别,并在每式的后面标注其含义。