1、MATLAB矩阵与绘图实验一、MATLAB矩阵与绘图一、 实验目的及要求1. 熟悉MATLAB语言环境2. 练习MATLAB命令的矩阵和基本绘图操作二、 实验内容习题1: 用文字或命令演示结果说明以下函数的意义 who,whos,help,lookfor,demos, clc, clf, clear, contro-c(c)程序:x=1:50; y=2*x+1; plot(x,y,*)演示1:whoYour variables are:x y 演示2: whos Name Size Bytes Class x 1x50 400 double array y 1x50 400 double ar
2、rayGrand total is 100 elements using 800 bytes演示3Help 再加所要查询的语句,将会出现其详细的用法和它的应用举例,下面是运行结果的一部分:(help是在确知你所要查询的情况下) help plot PLOT Linear plot. PLOT(X,Y) plots vector Y versus vector X. If X or Y is a matrix, then the vector is plotted versus the rows or columns of the matrix, whichever line up. If X
3、is a scalar and Y is a vector, length(Y) disconnected points are plotted. PLOT(Y) plots the columns of Y versus their index. If Y is complex, PLOT(Y) is equivalent to PLOT(real(Y),imag(Y). In all other uses of PLOT, the imaginary part is ignored. Various line types, plot symbols and colors may be ob
4、tained with PLOT(X,Y,S) where S is a character string made from one element from any or all the following 3 columns: b blue . point - solid g green o circle : dotted r red x x-mark -. dashdot c cyan + plus - dashed m magenta * star y yellow s square k black d diamond v triangle (down) triangle (up)
5、triangle (right) p pentagram h hexagram 等等演示4:如果查询一个不知其函数名称的函数用法与功能,help不能完成此功能,lookfor可以根据相关的关键字来查询相关的函数,演示如下:SS2TF State-space to transfer function conversion.TF2SS Transfer function to state-space conversion.TF2ZP Transfer function to zero-pole conversion.TFCHK Check for proper transfer function.
6、ZP2TF Zero-pole to transfer function conversion.MATQDLG Workspace transfer dialog box.DTF2SS Discrete transfer function to state-space conversion.SFUNTF an S-function which performs transfer function analysis using ffts.OCT2GEN Convert an octal form of transfer function into a binary one.SIM2GEN Con
7、verts a Simulink block diagram to convolution code transfer function.sim2gen2.m: %SIM2GEN Converts a SIMULINK block diagram to convolution code transfer function.SIM2TRAN Converts a Simulink block diagram to convolution code transfer function.FILT DSP-oriented specification of discrete transfer func
8、tions.上述也只是程序的一部分。演示5:demos 演示6:clc运行后会将命令窗口的所有内容删除,但变量窗口等的数据依然存在。演示7:clear 运行后,workplace 中内容全部清空。演示8:clf 是清除绘图窗口中的内容。演示9:contro-c(c):习题2:已知矩阵, 1)求A的逆矩阵; 2)已知A*x=B, 求x;3)显示命令A(4,2,4),A(2:end,3) 的输出结果,并用类似取地址的命令从A矩阵中取出矩阵,并计算C*D, C.*D, C*E,C*8。解答:A=3,4,-7,-12;5,-7,4,2;1,0,8,-5;-6,5,-2,10B=4;-3;9;-8;1)
9、求A的逆矩阵; inv(A)ans = 0.2840 0.3964 0.1323 0.3277 0.2213 0.2043 0.1687 0.3090 0.0021 0.0403 0.1204 0.0547 0.0602 0.1437 0.0191 0.15302)已知A*x=B, 求x;x =inv(A)*B,程序及运行结果如下: x =inv(A)*Bx = -1.4841 -0.6816 0.5337 -1.24293) A(4,2,4)ans = 5 10 A(2:end,3)ans = 4 8-2C= A(1:3,2:4)C = 4 -7 -12 -7 4 2 0 8 -5D = A
10、(2:4,1:3)D = 5 -7 4 1 0 8-6 5 -2E= A(1 3 4,1 2)ans = 3 4 1 0-6 5 C*Dans = 85 -88 -16 -43 59 038 -25 74 C.*Dans = 20 49 -48 -7 0 16 0 40 10 C*Eans = 77 -44 -29 -18 38 -25 C*8ans = 32 -56 -96 -56 32 16 0 64 -40习题3: 求多项式 的根. a=1 0 25 0;b=1 -34 46;c=conv(a,b)roots(c)运行结果:c = 1 -34 71 -850 1150 0ans = 0
11、32.5885 -0.0000 + 5.0000i -0.0000 - 5.0000i 1.4115 习题4: 对数组x = 0: 0.1: 2.5, y=0 0.11246 0.2227 0.32863 0.42839 0.5205 0.60386 0.6778 0.7421 0.79691 0.8427 0.88021 0.91031 0.93401 0.95229 0.96611 0.97635 0.98379 0.98909 0.99279 0.99532 0.99702 0.99814 0.99886 0.99931 0.99959; 进行5阶多项式拟合,并绘制出拟合曲线和原始的采样
12、点。参考函数:roots, poly, conv, polyval, polyfit程序:x0 = 0: 0.1: 2.5;y0=0 0.11246 0.2227 0.32863 0.42839 0.5205 0.60386 0.6778 0.7421 0.79691 0.8427 0.88021 0.91031 0.93401 0.95229 0.96611 0.97635 0.98379 0.98909 0.99279 0.99532 0.99702 0.99814 0.99886 0.99931 0.99959;n=5;p=polyfit(x0,y0,n)%xx=0:0.01:1;yy=
13、polyval(p,x0)plot(x0,yy,o,x0,y0),xlabel(x)运行结果:p = -0.0352 0.2435 -0.5101 0.0073 1.1378 -0.0007习题五习题5: 认真观察以下图形线性、标注、坐标轴、栅格等特点,写出绘制该图形的命令程序:x=0:pi/10:2*pi;y1=(sin(2*x).2;y2=0.5*cos(2*x).*sin(2*x);y3=2*sin(x)+cos(x);y4=y1+y2+y3;subplot(2,2,1),plot(x,y2,:g,x,y2,*g),ylabel(y2),grid on,axis(0,7,-0.3,0.3
14、),title(y2=0.5cos(2x)sin(2x),0:pi/10:2*pi);subplot(2,2,2),plot(x,y1,x,y3),axis(0,10,-4,4),gtext(y1=sin(2*x).2);gtext(y3=2*sin(x)+cos(x);subplot(2,2,3),plot(x,y1,:r,x,y3,o:g),axis(0,10,-4,4),legend(y1=sin(2*x).2),y3=2*sin(x)+cos(x);subplot(2,2,4),stairs(y4),axis(0,25,-3,3),title(y4=y1+y2+y3;(用stairs函
15、数绘图),gtext(需要用axis调整坐标轴范围)图形:1、 用ones和diag函数生成下列矩阵(1)程序:clear;clc;A=ones(7);A(2:6,2:6)=3;A(3:5,3:5)=5;A(4,4)=7;A结果:A = 1 1 1 1 1 1 1 1 3 3 3 3 3 1 1 3 5 5 5 3 1 1 3 5 7 5 3 1 1 3 5 5 5 3 1 1 3 3 3 3 3 1 1 1 1 1 1 1 1 (2)程序:clear;clc;B0=4 4 4 4 4;B1=0;B2=0 0;B3=2 2 2;B4=3 3 3 3;B5=5 5 5 5;B6=6 6 6;V0
16、=diag(B0,0);V1=diag(B1,-4);V2=diag(B2,-3);V3=diag(B3,-2);V4=diag(B4,-1);V5=diag(B5,1);V6=diag(B6,2);V7=diag(B2,3);V8=diag(B1,4);V=V0+V1+V2+V3+V4+V5+V6+V7+V8运行结果:V = 4 5 6 0 0 3 4 5 6 0 2 3 4 5 6 0 2 3 4 5 0 0 2 3 42、已知矩阵A=,求矩阵的转置,逆矩阵,矩阵的秩、矩阵的行列式,矩阵的三次幂,矩阵的特征值和特征向量。已知矩阵B=,求矩阵A和B的矩阵乘积和数组乘积。A=1,8,7;2,9
17、,6;3,4,5B=8,8,4;4,4,5;1,1,1Aans = 1 2 3 8 9 4 7 6 5 inv(A)ans = -0.4375 0.2500 0.3125 -0.1667 0.3333 -0.16670.3958 -0.4167 0.1458 rank(A)ans = 3 det(A)ans = -48 A3ans = 524 1636 1364 574 1785 1482 396 1208 1012 v d=eig(A)v = -0.6041 -0.8918 0.0739 -0.6587 -0.0824 -0.6523 -0.4484 0.4449 0.7543d = 14.
18、9184 0 0 0 -1.7534 0 0 0 1.8350矩阵乘积:A*Bans = 47 47 51 58 58 59 45 45 37数组乘积: A.*Bans = 8 64 28 8 36 30 3 4 53、使用randn命令创建一个5*6的数组,1)寻找该数组中大于0的元素,并将这些元素重新赋值为1;2)求各列的平均值和方差。求全体元素的平均值和方差。 a=randn(5,6)a = -0.4326 1.1909 -0.1867 0.1139 0.2944 0.8580 -1.6656 1.1892 0.7258 1.0668 -1.3362 1.2540 0.1253 -0.0
19、376 -0.5883 0.0593 0.7143 -1.5937 0.2877 0.3273 2.1832 -0.0956 1.6236 -1.4410 -1.1465 0.1746 -0.1364 -0.8323 -0.6918 0.5711 a(find(a0)ans = 0.1253 0.2877 1.1909 1.1892 0.3273 0.1746 0.7258 2.1832 0.1139 1.0668 0.0593 0.2944 0.7143 1.6236 0.8580 1.2540 0.5711 a(find(a0)=1a = -0.4326 1.0000 -0.1867 1.
20、0000 1.0000 1.0000 -1.6656 1.0000 1.0000 1.0000 -1.3362 1.0000 1.0000 -0.0376 -0.5883 1.0000 1.0000 -1.5937 1.0000 1.0000 1.0000 -0.0956 1.0000 -1.4410 -1.1465 1.0000 -0.1364 -0.8323 -0.6918 1.0000 mean(a)ans = -0.2489 0.7925 0.2177 0.4144 0.1944 -0.0069 mean(mean(a)ans =0.2272 var(a)ans = 1.4915 0.
21、2153 0.5406 0.7108 1.2687 1.9040 var(var(a)ans =0.4074、列出5种变量初始化的方法。逐个元素输入法 b=0 0 1 5 8 9b = 0 0 1 5 8 9冒号生成法 b=0:0.5:3b = 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000定数线性采样法 b=linspace(0,10,10)b = 0 1.1111 2.2222 3.3333 4.4444 5.5556 6.6667 7.7778 8.8889 10.0000(4)用单下标方式给矩阵赋值: a=1,2,3;5,8,9a = 1 2 3
22、 5 8 9 a(5:6)=10 10a = 1 2 10 5 8 10用全下标标识给矩阵元素赋值 a=1 8 9;4 6 2a = 1 8 9 4 6 2 a(3,3)=5a = 1 8 9 4 6 2 0 0 55、已知向量x=1 2 3 4 5, y=7 11 13 15 19。试着分别用线性插值法和三次多项式插值法求x=1.3, 2.4 和4.8时所对应的y值。.三次多项式插值法:x=1 2 3 4 5; y=7 11 13 15 19; xi=1.3,2.4,4.8; yi=interp1(x,y,xi,cubic); plot(xi,yi,-b,x,y,.r,markersize,
23、20),xlabel(x);线性插入法程序:clearclcx = 1 2 3 4 5y=7 11 13 15 19p1=polyfit(x,y,1)p3=polyfit(x,y,3)y1=polyval(p1,1.3)y2=polyval(p1,2.4)y3=polyval(p1,4.8)z1=polyval(p3,1.3)z2=polyval(p3,2.4)z3=polyval(p3,4.8)运行结果:x = 1 2 3 4 5y = 7 11 13 15 19p1 = 2.8000 4.6000p3 = 0.3333 -3.0000 10.6667 -1.0000y1 = 8.2400y2 = 11.3200y3 = 18.0400z1 = 8.5290z2 = 11.9280z3 = 17.9440
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1