当前位置:文档之家› matlab7.0x课后习题答案

matlab7.0x课后习题答案

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=[0 0 8;0 -7 5;2 3 0] b=[2 0 4;0 5 0;7 0 8]然后利用reshape函数将它们变换成行向量。

解:产生a的程序:b=diag([8 -7 2]);c=b+diag([5 3],-1);a=fliplr(c)产生b的程序:s=[2 2 8];t=[4 3 7];v=diag(s);p=diag(t)+fliplr(v);b=fliplr(p)运行结果:a =0 0 80 -7 52 3 0b =2 0 40 5 07 0 8利用reshape函数将它们变换成行向量:reshape(a,1,9)ans =0 0 2 0 -7 3 8 5 03、产生一均匀分布在(-5,5)之间的随机阵(50*2),要求精确到小数点后一位。

解:A=5-round(100*rand(50,2))/10部分数据结果:A =2.4000 4.2000-0.1000 2.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)部分数据结果:Columns 10 through 18(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=(A<0.5)&(A>-0.5);C=sum(sum(B))运行结果(每次运行结果是不同的,仅作参考):C=481、解:if and(a<1,b<=0.5)语句1;elseif and(a<1,b>0.5)语句2;elseif and(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(A>100);A(i,:)=[] %删去存在奇异值的行运行结果(每次运行结果是不同的,仅作参考):A =49.5355 -23.7550 -73.0269-118.4354 39.3214 -88.447291.1482 -28.5962 -209.985521.2336 -74.0239 -9.5871-15.8184 72.1322 22.044471.4429 11.0770 34.89484、在给定的100*100矩阵中,删去整行为0的行,删去整列为0的列。

解:A=diag([1 2 3 4],1)B=any(A)[i,j]=find(B==0)A(:,i)=[] %删除全为0的列B=any(A')[i,j]=find(B==0)A(j,:)=[] %删除全为0的行运行结果:初始值:A =0 1 0 0 00 0 2 0 00 0 0 3 00 0 0 0 40 0 0 0 0操作后:A =1 0 0 00 2 0 00 0 3 00 0 0 41、将窗口分割成四格,分别绘制正弦、余弦、正切和余切函数曲线,并加上适当的标注。

程序为:x=0:pi/50:2*pi;k=[1 26 51 76 101];x(k)=[];%删除正切和余切的奇异点figure(1)subplot(2,2,1)plot(x,sin(x),'k--'),grid onlegend('\ity=sin(x)')title('y=sin(x)')xlabel('x'), ylabel('y')subplot(2,2,2)plot(x,cos(x),'r--'),grid onlegend('\ity=cos(x)')title('y=con(x)')xlabel('x'), ylabel('y')subplot(2,2,3)plot(x,tan(x),'k'),grid onlegend('\ity=tan(x)')title('y=tan(x)')xlabel('x'), ylabel('y')subplot(2,2,4)plot(x,cot(x),'b-'),grid onlegend('\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),grid ontitle('二维多峰函数')图形为:[x,y]=meshgrid(-3:0.15:3);z=peaks(x,y);figure(1)plot3(x,y,z),grid ontitle('三维多峰函数')三角函数多条曲线:程序为:t=-pi:pi/20:pi;y1=sinh(t); %双曲正弦y2=cosh(t); %双曲余弦figure(1)subplot(2,1,1)plot(t,y1,'r--',t,y2,'k-'),grid onlegend('\ity1=sinh(t)','\ity2=cosh(t)')title('三角函数1')xlabel('t'), ylabel('y')subplot(2,1,2)plot(t,sin(t),'k-'),grid onhold on %保持原有图像函数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-'),grid onlegend('\ity1=2*x+5')title('y1=2x+5')xlabel('x'), ylabel('y1')subplot(2,2,2)plot(x,y2,'k-'),grid onlegend('\ity2=x.^2-3*x+1')title('y2=x^2-3x+1')xlabel('x'), ylabel('y2')subplot(2,2,3)plot(x,y1,'r-'),grid onlegend('\ity1=2*x+5')title('调整后的y1=2x+5')axis([-3 3 -10 10])xlabel('x'), ylabel('y1')subplot(2,2,4)plot(x,y2,'k-'),grid onlegend('\ity2=x.^2-3*x+1')title('调整后的y2=x^2-3x+1')axis([-3 3 -10 10]) %调整坐标轴xlabel('x'), ylabel('y2')运行后的图形:4、绘制饼图。

程序为:x=[190 33 45 42 45];explode=[0 1 0 0 0];figure(1)subplot(2,1,1)colormap hsvpie(x,explode)gtext('生活费')gtext('资料费')gtext('电话费')gtext('衣服')gtext('其它')title('二维饼图')subplot(2,1,2)colormap hsvpie3(x,explode)title('三维饼图')图形为:5、画出函数z=(x-2)2+(y-1.2)2+sin(xy)的三维曲线和网格曲线。

相关主题