您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > matlab7.x课后答案(楼顺天版)
1、利用基本矩阵产生3*3和15*8的单位矩阵、全1矩阵、全0矩阵、均匀分布随机阵([-1,1]之间)、正态分布随机阵(均值为1,方差为4)。解:A1=eye(3);A2=ones(3);A3=zeros(3);A4=2*rand(3)-1;A5=2*randn(3)+1;B1=eye(15,8);B2=ones(15,8);B3=zeros(15,8);B4=2*rand(15,8)-1;B5=2*randn(15,8)+1;结果:由于数据是随机产生的,所以在没有给出运行结果。2、利用diag等函数产生下列矩阵:a=[008;0-75;230]b=[204;050;708]然后利用reshape函数将它们变换成行向量。解:产生a的程序:b=diag([8-72]);c=b+diag([53],-1);a=fliplr(c)产生b的程序:s=[228];t=[437];v=diag(s);p=diag(t)+fliplr(v);b=fliplr(p)运行结果:a=0080-75230b=204050708利用reshape函数将它们变换成行向量:reshape(a,1,9)ans=0020-738503、产生一均匀分布在(-5,5)之间的随机阵(50*2),要求精确到小数点后一位。解:A=5-round(100*rand(50,2))/10部分数据结果:A=2.40004.2000-0.10002.7000-4.6000-3.3000-0.5000-0.40003.50004.20004、编程实现当t∈[-π,π],间隔为1°时求解正弦和余弦值。解:t=(-1*pi:1/180:pi);y1=sin(t)y2=cos(t)部分数据结果:Columns10through18(y1)-0.0500-0.0555-0.0611-0.0666-0.0722-0.0777-0.0832-0.0888-0.09435、利用rand函数产生(0,1)间的均匀分布的10*10随机矩阵A,然后统计A中大于等于0.6的元素的个数。解:A=rand(10);B=A=0.6;C=sum(B);count=sum(C)运行结果(每次运行结果是不同的,仅作参考):count=326、利用randn函数产生均值为0,方差为1的10*10随机矩阵A,然后统计A中大于-0.5且小于0.5的元素的个数。解:A=randn(10);B=(A0.5)&(A-0.5);C=sum(sum(B))运行结果(每次运行结果是不同的,仅作参考):C=481、解:ifand(a1,b=0.5)语句1;elseifand(a1,b0.5)语句2;elseifand(a=1,b=0.5)语句3;else语句4;2、有一矩阵A,找出矩阵中值等于1的元素,并将它们重新排列成列向量B。解:A=2*rand(4);k=find(A=1);A(k)=[];%删除下标为k的元素B=A'运行结果(每次运行结果是不同的,仅作参考)B=1.47691.83481.53101.15241.36671.09321.28891.29521.35803、在一测量矩阵A(100*3)中,存在有奇异值(假设大于100的置认为是奇异值),编程实现删去奇异值所在的行。解:A=120*randn(10,3);[i,j]=find(A100);A(i,:)=[]%删去存在奇异值的行运行结果(每次运行结果是不同的,仅作参考):A=49.5355-23.7550-73.0269-118.435439.3214-88.447291.1482-28.5962-209.985521.2336-74.0239-9.5871-15.818472.132222.044471.442911.077034.89484、在给定的100*100矩阵中,删去整行为0的行,删去整列为0的列。解:A=diag([1234],1)B=any(A)[i,j]=find(B==0)A(:,i)=[]%删除全为0的列B=any(A')[i,j]=find(B==0)A(j,:)=[]%删除全为0的行运行结果:初始值:A=0100000200000300000400000操作后:A=10000200003000041、将窗口分割成四格,分别绘制正弦、余弦、正切和余切函数曲线,并加上适当的标注。程序为:x=0:pi/50:2*pi;k=[1265176101];x(k)=[];%删除正切和余切的奇异点figure(1)subplot(2,2,1)plot(x,sin(x),'k--'),gridonlegend('\ity=sin(x)')title('y=sin(x)')xlabel('x'),ylabel('y')subplot(2,2,2)plot(x,cos(x),'r--'),gridonlegend('\ity=cos(x)')title('y=con(x)')xlabel('x'),ylabel('y')subplot(2,2,3)plot(x,tan(x),'k'),gridonlegend('\ity=tan(x)')title('y=tan(x)')xlabel('x'),ylabel('y')subplot(2,2,4)plot(x,cot(x),'b-'),gridonlegend('\ity=cot(x)')title('y=cot(x)')xlabel('x'),ylabel('y')运行如下:2、绘制多峰函数peaks和三角函数多条曲线。多峰函数peaks:[x,y]=meshgrid(-3:0.15:3);z=peaks(x,y);x1=x(1,:);figure(1)plot(x1,z),gridontitle('二维多峰函数')图形为:[x,y]=meshgrid(-3:0.15:3);z=peaks(x,y);figure(1)plot3(x,y,z),gridontitle('三维多峰函数')三角函数多条曲线:程序为:t=-pi:pi/20:pi;y1=sinh(t);%双曲正弦y2=cosh(t);%双曲余弦figure(1)subplot(2,1,1)plot(t,y1,'r--',t,y2,'k-'),gridonlegend('\ity1=sinh(t)','\ity2=cosh(t)')title('三角函数1')xlabel('t'),ylabel('y')subplot(2,1,2)plot(t,sin(t),'k-'),gridonholdon%保持原有图像函数plot(t,cos(t),'r--')legend('\ity2=cos(t)','\ity1=sin(t)')title('三角函数2')xlabel('t'),ylabel('y')运行图形为:3、将图形窗口分成两个,分别绘制以下函数在[-3,3]区间上的曲线,并利用axis调整轴刻度,使他们具有相同缩放尺度。y1=2x+5;y2=x2-3x+1。程序为:x=-3:0.1:3;y1=2*x+5;y2=x.^2-3*x+1;figure(1)subplot(2,2,1)plot(x,y1,'r-'),gridonlegend('\ity1=2*x+5')title('y1=2x+5')xlabel('x'),ylabel('y1')subplot(2,2,2)plot(x,y2,'k-'),gridonlegend('\ity2=x.^2-3*x+1')title('y2=x^2-3x+1')xlabel('x'),ylabel('y2')subplot(2,2,3)plot(x,y1,'r-'),gridonlegend('\ity1=2*x+5')title('调整后的y1=2x+5')axis([-33-1010])xlabel('x'),ylabel('y1')subplot(2,2,4)plot(x,y2,'k-'),gridonlegend('\ity2=x.^2-3*x+1')title('调整后的y2=x^2-3x+1')axis([-33-1010])%调整坐标轴xlabel('x'),ylabel('y2')运行后的图形:4、绘制饼图。程序为:x=[19033454245];explode=[01000];figure(1)subplot(2,1,1)colormaphsvpie(x,explode)gtext('生活费')gtext('资料费')gtext('电话费')gtext('衣服')gtext('其它')title('二维饼图')subplot(2,1,2)colormaphsvpie3(x,explode)title('三维饼图')图形为:5、画出函数z=(x-2)2+(y-1.2)2+sin(xy)的三维曲线和网格曲线。程序为:[x,y]=meshgrid(0:0.5:10);%为三维绘图产生x,y数据矩阵z=(x-2).^2+(y-1.2).^2;figure(1)subplot(2,1,1)mesh(x,y,z),gridon%绘制网格曲线title('网格曲线')subplot(2,1,2)plot3(x,y,z),gridontitle('三维曲线')运行后的图形:6、画出下列函数的曲面及等高线图z=x2+y2+sin(xy)。程序为:[x,y]=meshgrid(0:pi/10:2*pi);z=x.^2+y.^2+sin(x*y);figure(1)subplot(2,1,1)surfc(x,y,z),gridontitle('曲面和等高线')subplot(2,1,2)[c,h]=contour(x,y,z);set(h,'showtext','on','textstep',get(h,'levelstep')*2);title('等高线')运行后的图形:1、将图形窗口分成两个,分别绘制正割和余割曲线,并加上标注。程序为:x1=0:pi\10:2*pi;figure(1)subplot(2,1,1)plot(x,sec(x),'k-'),gridonlegend('\ity=sec(x)')title('y=sec(x)')xlabel('x'),ylabel('y')subplot(2,1,2)plot(x,csc(x),'k-'),gridonlegend('\ity=csc(x)')title('y=csc(x)')xlabel('x'),ylabel('y')运行后图形为:2、画出对数和指数曲线并加上标注。x=0.01:0.1:10;y1=log10(x);y2=exp(x);figure(1)subplot(2,1,1)plot(x,y1,'k-'),gridonlegend('\ity1=log-{10}(x)')title('y1=log-{10}(x)')xlabel('x'),ylabel('y1')subplot(2,1,2)plot(x,y2,'k-'),gridonlegend('\ity2=exp(x)')title('y2=exp(x)')xlabel('x'),ylabel('y2')运行后图形为:3、设有函数y=exp(x+5)+x.^3,在半对数坐标系中绘制曲线。程序为:x=1:0.01:10;y=exp(x+5)+x.^3;figure(1)subplot(2,1,1)plot(x,y,'r-'),gridonlegend('\ity=exp(x+5)+x.^3')title('平面坐标')xlabel('x'),ylabel('y')subplot(2,1,2)semilogx(x,y,'k-'),gridon%半对数坐标轴legend('\ity=exp(x+5)+x.^3')title('半对数坐标')xlabel('x'),ylabel('y')运行后图形为:4、画出各种大小和形状的球和柱体。绘制柱体的程序为:t=0
本文标题:matlab7.x课后答案(楼顺天版)
链接地址:https://www.777doc.com/doc-4210074 .html