MATLAB--练习(含代码)
MATLAB编程练习(含答案很好的)
001双峰曲线图:z=peaks(40);mesh(z);surf(z)002解方程:A=[3,4,-2;6,2,-3;45,5,4];>> B=[14;4;23];>> root=inv(A)*B003傅里叶变换load mtlb ;subplot(2,1,1);plot(mtlb);>> title('原始语音信息');>> y=fft(mtlb);>> subplot(2,1,2);>> yy=abs(y);>> plot(yy);>> title('傅里叶变换')004输入函数:a=input('How many apples\n','s')005输出函数a=[1 2 3 4 ;5 6 7 8;12 23 34 45;34 435 23 34]a =1 2 3 45 6 7 812 23 34 4534 435 23 34disp(a)a =1 2 3 45 6 7 812 23 34 4534 435 23 34b=input('how many people\n' ,'s')how many peopletwo peopleb =two people>> disp(b)two people>>006求一元二次方程的根a=1;b=2;c=3;d=sqrt(b^2-4*a*c);x1=(-b+d)/(2*a)x1 =-1.0000 + 1.4142i>> x2=(-b-d)/(2*a)x2 =-1.0000 - 1.4142i007求矩阵的相乘、转置、存盘、读入数据A=[1 3 5 ;2 4 6;-1 0 -2;-3 0 0];>> B=[-1 3;-2 2;2 1];>> C=A*BC =3 142 20-3 -53 -9>> C=C'C =3 2 -3 314 20 -5 -9>> save mydat C>> clear>> load mydat C008编写数学计算公式:A=2.1;B=-4.5;C=6;D=3.5;E=-5;K=atan(((2*pi*A)+E/(2*pi*B*C))/D) K =1.3121009A=[1 0 -1;2 4 1;-2 0 5];>> B=[0 -1 0;2 1 3;1 1 2];>> H=2*A+BH =2 -1 -26 9 5-3 1 12>> M=A^2-3*BM =3 3 -62 13 -2-15 -3 21>> Y=A*BY =-1 -2 -29 3 145 7 10>> R=B*AR =-2 -4 -1-2 4 14-1 4 10>> E=A.*BE =0 0 04 4 3-2 0 10>> W=A\BW =0.3333 -1.3333 0.66670.2500 1.0000 0.25000.3333 -0.3333 0.6667 >> P=A/BP =-2.0000 3.0000 -5.0000-5.0000 3.0000 -4.00007.0000 -9.0000 16.0000>> Z=A.\BWarning: Divide by zero.Z =0 -Inf 01.0000 0.2500 3.0000-0.5000 Inf 0.4000>> D=A./BWarning: Divide by zero.D =Inf 0 -Inf1.0000 4.0000 0.3333-2.0000 0 2.5000010a=4.96;b=8.11;>> M=exp(a+b)/log10(a+b)M =4.2507e+005011求三角形面积:a=9.6;b=13.7;c=19.4;>> s=(a+b+c)/2;>> area=sqrt(s*(s-a)*(s-b)*(s-c))area =61.1739012逻辑运算A=[-1 0 -6 8;-9 4 0 12.3;0 0 -5.1 -2;0 -23 0 -7]; >> B=A(:,1:2)B =-1 0-9 40 00 -23>> C=A(1:2,:)C =-1.0000 0 -6.0000 8.0000 -9.0000 4.0000 0 12.3000>> D=B'D =-1 -9 0 00 4 0 -23>> A*Bans =1.0000 -184.0000-27.0000 -266.90000 46.0000 207.0000 69.0000>> C<Dans =0 0 1 01 0 0 0>> C&Dans =1 0 0 00 1 0 1>> C|Dans =1 1 1 11 1 0 1>> ~C|~Dans =0 1 1 11 0 1 0013矩阵运算练习:A=[8 9 5;36 -7 11;21 -8 5]A =8 9 536 -7 1121 -8 5>> BB =-1 3 -22 0 3-3 1 9>> RT=A*BRT =-5 29 56-83 119 6-52 68 -21>> QW=A.*BQW =-8 27 -1072 0 33-63 -8 45>> ER=A^3ER =6272 3342 294415714 -856 52608142 -1906 2390 >> BF=A.^3BF =512 729 12546656 -343 13319261 -512 125 >> A/Bans =3.13414.9634 -0.4024-1.2561 12.5244 -3.2317-1.9878 6.4512 -2.0366>> EKV=B\AEKV =10.7195 -1.2683 3.52449.4756 1.5854 3.71954.8537 -1.4878 1.3171>> KDK=[A,B]KDK =8 9 5 -1 3 -236 -7 11 2 0 321 -8 5 -3 1 9 >> ERI=[A;B]ERI =8 9 536 -7 1121 -8 5-1 3 -22 0 3-3 1 9014一般函数的调用:A=[2 34 88 390 848 939];>> S=sum(A)S =2301>> min(A)ans =2>> EE=mean(A)EE =383.5000>> QQ=std(A)QQ =419.3794>> AO=sort(A)AO =2 34 88 390 848 939 >> yr=norm(A)yr =1.3273e+003>> RT=prod(A)RT =1.8583e+012>> gradient(A)ans =32.0000 43.0000 178.0000 380.0000 274.5000 91.0000 >> max(A)ans =939>> median(A)ans =239>> diff(A)ans =32 54 302 458 91>> length(A)ans =6>> sum(A)ans =2301>> cov(A)ans =1.7588e+005>>015矩阵变换:A=[34 44 23;8 34 23;34 55 2]A =34 44 238 34 2334 55 2>> tril(A)ans =34 0 08 34 034 55 2>> triu(A)ans =34 44 230 34 230 0 2>> diag(A)ans =34342norm(A)ans =94.5106>> rank(A)ans =3>> det(A)ans =-23462>> trace(A)ans =70>> null(A)ans =Empty matrix: 3-by-0>> eig(A)ans =80.158712.7671-22.9257>> poly(A)ans =1.0e+004 *0.0001 -0.0070 -0.1107 2.3462>> logm(A)Warning: Principal matrix logarithm is not defined for A with nonpositive real eigenvalues. A non-principal matrixlogarithm is returned.> In funm at 153In logm at 27ans =3.1909 + 0.1314i 1.2707 + 0.1437i 0.5011 - 0.2538i0.4648 + 0.4974i 3.3955 + 0.5438i 0.1504 - 0.9608i0.2935 - 1.2769i 0.8069 - 1.3960i 3.4768 + 2.4663i>> fumn(A)Undefined command/function 'fumn'.>> inv(A)ans =0.0510 -0.0502 -0.0098-0.0326 0.0304 0.02550.0305 0.0159 -0.0343>> cond(A)ans =8.5072>> chol(A)Error using ==> cholMatrix must be positive definite.>> lu(A)ans =34.0000 44.0000 23.00000.2353 23.6471 17.58821.0000 0.4652 -29.1816>> pinv(A)ans =0.0510 -0.0502 -0.0098-0.0326 0.0304 0.02550.0305 0.0159 -0.0343>> svd(A)ans =94.510622.345611.1095>> expm(A)ans =1.0e+034 *2.1897 4.3968 1.93821.31542.6412 1.16431.8782 3.7712 1.6625>> sqrtm(A)ans =5.2379 + 0.2003i 3.4795 + 0.2190i 1.8946 - 0.3869i0.5241 + 0.7581i 5.1429 + 0.8288i 2.0575 - 1.4644i3.0084 - 1.9461i4.7123 - 2.1276i 2.1454 + 3.7589i >>016多项式的计算:A=[34 44 23;8 34 23;34 55 2]A =34 44 238 34 2334 55 2>> P=poly(A)P =1.0e+004 *0.0001 -0.0070 -0.1107 2.3462>> PPA=poly2str(P,'X')PPA =X^3 - 70 X^2 - 1107 X + 23462017多项式的运算:p=[2 6 8 3];w=[32 56 0 2];>> m=conv(p,w)m =64 304 592 548 180 16 6 >> [q,r]=deconv(w,p)q =16r =0 -40 -128 -46>> dp=polyder(w)dp =96 112 0>> [num,den]=polyder(w,p)num =80 512 724 312 -16den =4 24 68 108 100 48 9>> b=polyfit(p,w,4)Warning: Polynomial is not unique; degree >= number of data points. > In polyfit at 74b =-0.6704 9.2037 -32.2593 0 98.1333>> r=roots(p)r =-1.2119 + 1.0652i-1.2119 - 1.0652i-0.5761018求多项式的商和余p=conv([1 0 2],conv([1 4],[1 1]))p =1 5 6 10 8>> q=[1 0 1 1]q =1 0 1 1>> [w,m]=deconv(p,q)w =1 5m =0 0 5 4 3>> cq=w;cr=m;>> disp([cr,poly2str(m,'x')])5 x^2 + 4 x + 3>> disp([cq,poly2str(w,'x')])x + 5019将分式分解a=[1 5 6];b=[1];>> [r,p,k]=residue(b,a)r =-1.00001.0000p =-3.0000-2.0000k =[]020计算多项式:a=[1 2 3;4 5 6;7 8 9];>> p=[3 0 2 3];>> q=[2 3];>> x=2;>> r=roots(p)r =0.3911 + 1.0609i0.3911 - 1.0609i-0.7822>> p1=conv(p,q)p1 =6 9 4 12 9>> p2=poly(a)p2 =1.0000 -15.0000 -18.0000 -0.0000 >> p3=polyder(p)p3 =9 0 2>> p4=polyval(p,x)p4 =31021求除式和余项:[q,r]=deconv(conv([1 0 2],[1 4]),[1 1 1])022字符串的书写格式:s='student's =student>> name='mary';>> s1=[name s]s1 =marystudent>> s3=[name blanks(3);s]s3 =marystudent>>023交换两个数:clearclca=[1 2 3 4 5];b=[6 7 8 9 10];c=a;a=b;b=c;ab24If语句n=input('enter a number,n=');if n<10nend025 if 双分支结构a=input('enter a number ,a=');b=input('enter a number ,b=');if a>bmax=a;elsemax=b;endmax026三个数按照由大到小的顺序排列:A=15;B=24;C=45;if A<BT=A;A=B;B=T;elseif A<CT=A;A=C;C=T;elseif B<CT=B;B=C;C=T;endABC027建立一个收费优惠系统:price=input('please jinput the price : price=') switch fix(price/100)case[0,1]rate =0;case[2,3,4]rate =3/100;case num2cell(5:9)rate=5/100;case num2cell(10:24)rate=8/100;case num2cell(25:49)rate=10/100;otherwiserate=14/100;endprice=price*(1-rate)028:while循环语句i=0;s=0;while i<=1212s=s+i;i=i+1;ends029,用for循环体语句:sum=0;for i=1:1.5:100;sum=sum+i;endsum030循环的嵌套s=0;for i=1:1:6;for j=1:1:8;s=s+i^j;end;end;s031continue 语句的使用:for i=100:120;if rem(i,7)~=0;continue;end;iend032x=input ('输入X的值x=')if x<1y=x^2;elseif x>1&x<2y=x^2-1;elsey=x^2-2*x+1;endy033求阶乘的累加和sum=0;temp=1;for n=1:10;temp=temp*n;sum=sum+temp;endsum034对角线元素之和sum=0;a=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]; for i=1:4;sum=sum+a(i,i);endsum035用拟合点绘图A=[12 15.3 16 18 25];B=[50 80 118 125 150.8];plot(A,B)036绘制正玄曲线:x=0:0.05:4*pi;y=sin(x);plot(x,y)037绘制向量x=[1 2 3 4 5 6;7 8 9 10 11 12;13 14 15 16 17 18] plot(x)x=[0 0.2 0.5 0.7 0.6 0.7 1.2 1.5 1.6 1.9 2.3]plot(x)x=0:0.2:2*piy=sin(x)plot(x,y,'m:p')038在正弦函数上加标注:t=0:0.05:2*pi;plot(t,sin(t))set(gca,'xtick',[0 1.4 3.14 56.28])xlabel('t(deg)')ylabel('magnitude(v)')title('this is a example ()\rightarrow 2\pi')text(3.14,sin(3.14),'\leftarrow this zero for\pi')039添加线条标注x=0:0.2:12;plot(x,sin(x),'-',x,1.5*cos(x),':');legend('First','Second',1)040使用hold on 函数x=0:0.2:12;plot(x,sin(x),'-');hold onplot(x,1.5*cos(x),':');041一界面多幅图x=0:0.05:7;y1=sin(x);y2=1.5*cos(x);y3=sin(2*x);y4=5*cos(2*x);subplot(221);plot(x,y1);title('sin(x)')subplot(222);plot(x,y2);title('cos(x)')subplot(223);plot(x,y3);title('sin(2x)')subplot(224);plot(x,y4);title('cos(2x)')042染色效果图x=0:0.05:7;y1=sin(x);y2=1.5*cos(x);y3=sin(2*x);y4=5*cos(2*x);subplot(221);plot(x,y1);title('sin(x)');fill(x,y1,'r') subplot(222);plot(x,y2);title('cos(x)');fill(x,y2,'b') subplot(223);plot(x,y3);title('sin(2x)');fill(x,y3,'k') subplot(224);plot(x,y4);title('cos(2x)');fill(x,y4,'g')043特殊坐标图clcy=[0,0.55,2.5,6.1,8.5,12.1,14.6,17,20,22,22.1] subplot(221);plot(y);title('线性坐标图');subplot(222);semilogx(y);title('x轴对数坐标图');subplot(223);semilogx(y);title('y轴对数坐标图');subplot(224);loglog(y);title('双对数坐标图')t=0:0.01:2*pi;r=2*cos(2*(t-pi/8));polar(t,r)044特殊函数绘图:fplot('cos(tan(pi*x))',[-0.4,1.4])fplot('sin(exp(pi*x))',[-0.4,1.4])045饼形图与条形图:x=[8 20 36 24 12];subplot(221);pie(x,[1 0 0 0 1]);title('饼图');subplot(222);bar(x,'group');title('垂直条形图');subplot(223);bar(x,'stack');title('累加值为纵坐标的垂直条形图'); subplot(224);barh(x,'group');title('水平条形图');046梯形图与正弦函数x=0:0.1:10;y=sin(x);subplot(121);stairs(x);subplot(122);stairs(x,y);047概率图x=randn(1,1000);y=-2:0.1:2;hist(x,y)048向量图:x=[-2+3j,3+4j,1-7j];subplot(121);compass(x);rea=[-2 3 1];imag=[3 4 -7];subplot(122);feather(rea,imag);049绘制三维曲线图:z=0:pi/50:10*pi;x=sin(z);y=cos(z);plot3(x,y,z)x=-10:0.5:10;y=-8:0.5:8;[x,y]=meshgrid(x,y);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); subplot(221);mesh(x,y,z);title('普通一维网格曲面');subplot(222);meshc(x,y,z);title('带等高线的三维网格曲面'); subplot(223);meshz(x,y,z);title('带底座的三维网格曲面'); subplot(224);surf(x,y,z);title('充填颜色的三维网格面')050 带网格二维图x=0:pi/10:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,'r+-',x,y2,'k*:')grid onxlabel('Independent Variable x') ylabel('Dependent Variable y1&y2') text(1.5,0.5,'cos(x)')051各种统计图y=[18 5 28 17;24 12 36 14;15 6 30 9]; subplot(221);bar(y)x=[4,6,8];subplot(222);bar3(x,y)subplot(223);bar(x,y,'grouped') subplot(224);bar(x,y,'stack')052曲面图x=-2:0.4:2;y=-1:0.2:1;[x,y]=meshgrid(x,y);z=sqrt(4-x.^2/9-y.^2/4); surf(x,y,z)grid on053创建符号矩阵e=[1 3 5;2 4 6;7 9 11];m=sym(e)符号表达式的计算问题因式分解:syms xf=factor(x^3-1)s=sym('sin(a+b)'); expand(s)syms x tf=x*(x*(x-8)+6)*t; collect(f)syms xf=sin(x)^2+cos(x)^2; simplify(f)syms xs=(4*x^2+8*x+3)/(2*x+1); simplify(s)通分syms x yf=x/y-y/x;[m,n]=numden(f)嵌套重写syms xf=x^4+3*x^3-7*x^2+12; horner(f)054求极限syms x a;limit(exp(-x),x,0,'left')求导数syms xdiff(x^9+x^6)diff(x^9+x^6,4)055求不定积分与定积分syms x ys=(4-3*x^2)^2;int(s)int(x/(x+y),x)int(x^2/(x+2),x,1,3) double(ans)056函数的变换:syms x ty=exp(-x^2);Ft=fourier(y,x,t)fx=ifourier(Ft,t,x)057求解方程syms a b c xs=a*x^2+b*x+c;solve(s)syms x y zs1=2*x^2+y^2-3*z-4;s2=y+z-3;s3=x-2*y-3*z;[x,y,z]=solve(s1,s2,s3)058求微分方程:y=dsolve('Dy-(t^2+y^2)/t^2/2','t')059求级数和syms x ksymsum(k)symsum(k^2-3,0,10)symsum(x^k/k,k,1,inf)060泰勒展开式syms xs=(1-x+x^2)/(1+x+x^2);taylor(s)taylor(s,9)taylor(s,x,12)taylor(s,x,12,5)061练习syms x a;s1=sin(2*x)/sin(5*x);limit(s1,x,0)s2=(1+1/x)^(2*x);limit(s2,x,inf)syms xs=x*cos(x);diff(s)diff(s,2)diff(s,12)syms xs1=x^4/(1+x^2);int(s1)s2=3*x^2-x+1int(s2,0,2)syms x y zs1=5*x+6*y+7*z-16;s2=4*x-5*y+z-7;s3=x+y+2*z-2;[x,y,z]=solve(s1,s2,s3)syms x yy=dsolve('Dy=exp(2*x-y)','x')y=dsolve('Dy=exp(2*x-y)','y(0)=0','x')n=sym('n');s=symsum(1/n^2,n,1,inf)x=sym('x');f=sqrt(1-2*x+x^3)-(1-3*x+x^2)^(1/3);taylor(f,6)062求于矩阵相关的值a=[2 2 -1 1;4 3 -1 2;8 5 -3 4;3 3 -2 2]adet=det(a)atrace=trace(a)anorm=norm(a)acond=cond(a)arank=rank(a)eiga=eig(a)063矩阵计算A=[0.1389 0.6038 0.0153 0.9318;0.2028 0.2772 0.7468 0.4660;0.1987 0.1988 0.4451 0.4186]B=var(A)C=std(A)D=range(A)E=cov(A)F=corrcoef(A)064求根及求代数式的值P=[4 -3 2 5];x=roots(P)x=[3 3.6];F=polyval(P,x)065多项式的和差积商运算:f=[1 2 -4 3 -1]g=[1 0 1]g1=[0 0 1 0 1]f+g1f-g1conv(f,g)[q,r]=deconv(f,g)polyder(f)066各种插值运算:X=0:0.1:pi/2;Y=sin(X);interp1(X,Y,pi/4)interp1(X,Y,pi/4,'nearest')interp1(X,Y,pi/4,'spline')interp1(X,Y,pi/4,'cubic')067曲线的拟合:X=0:0.1:2*pi;Y=cos(X);[p,s]=polyfit(X,Y,4)plot(X,Y,'K*',X,polyval(p,X),'r-')068求函数的最值与0点x=2:0.1:2;[x,y]=fminbnd('x.^3-2*x+1',-1,1) [x,y]=fzero('x.^3-2*x+1',1)069求多项式的表达式、值、及图像y=[1 3 5 7 19]t=poly(y)x=-4:0.5:8yx=polyval(t,x)plot(x,yx)070数据的拟合与绘图x=0:0.1:2*pi;y=sin(x);p=polyfit(x,y,5);y1=polyval(p,x)plot(x,y,'b',x,y1,'r')071求代数式的极限:syms xf=sym('log(1+2*x)/sin(3*x)');b=limit(f,x,0)072求导数与微分syms xf=sym('x/(cos(x))^2');y1=diff(f)y2=int(f,0,1)078划分网格函数[x,y]=meshgrid(-2:0.01:2,-3:0.01:5); t=x.*exp(-x.^2-y.^2);[px,py]=gradient(t,0.05,0.1);td=sqrt(px.^2+py.^2);subplot(221)imagesc(t)subplot(222)imagesc(td)colormap('gray')079求多次多项方程组的解:syms x1 x2 a ;eq1=sym('x1^2+x2=a')eq2=sym('x1-a*x2=0')[x1 x2]=solve(eq1,eq2,x1,x2)v=solve(eq1,eq2)v.x1v.x2an1=x1(1),an2=x1(2)an3=x2(1),an4=x2(2)080求解微分方程:[y]=dsolve('Dy=-y^2+6*y','y(0)=1','x')s=dsolve('Dy=-y^2+6*y','y(0)=1','x')[u]=dsolve('Du=-u^2+6*u','u(0)=1')w=dsolve('Du=-u^2+6*u','z')[u,w]=dsolve('Du=-w^2+6*w,Dw=sin(z)','u(0)=1,w(0)=0','z') v=dsolve('Du=-w^2+6*w,Dw=sin(z)','u(0)=1,w(0)=0','z')081各种显现隐含函数绘图:f=sym('x^2+1')subplot(221)ezplot(f,[-2,2])subplot(222)ezplot('y^2-x^6-1',[-2,2],[0,10])x=sym('cos(t)')y=sym('sin(t)')subplot(223)ezplot(x,y)z=sym('t^2')subplot(224)ezplot3(x,y,z,[0,8*pi])082极坐标图:r=sym('4*sin(3*x)')ezpolar(r,[0,6*pi])083多函数在一个坐标系内:x=0:0.1:8;y1=sin(x);subplot(221)plot(x,y1)subplot(222)plot(x,y1,x,y2)w=[2 3;3 1;4 6]subplot(223)plot(w)q=[4 6:3 5:1 2]subplot(224)plot(w,q)084调整刻度图像:x=0:0.1:10;y1=sin(x);y2=exp(x);y3=exp(x).*sin(x);subplot(221)plot(x,y2)subplot(222)loglog(x,y2)subplot(223)plotyy(x,y1,x,y2)085等高线等图形,三维图:t=0:pi/50:10*pi;subplot(2,3,1)plot3(t.*sin(t),t.*cos(t),t.^2) grid on[x,y]=meshgrid([-2:0.1:2])z=x.*exp(-x.^2-y.^2)subplot(2,3,2)plot3(x,y,z)box offsubplot(2,3,3)meshz(x,y,z)subplot(2,3,4)surf(x,y,z)contour(x,y,z)subplot(2,3,6)surf(x,y,z)subplot(2,3,5)contour(x,y,z)box offsubplot(2,3,6)contour3(x,y,z)axis off086统计图Y=[5 2 1;8 7 3;9 8 6;5 5 5;4 3 2]subplot(221)bar(Y)box offsubplot(222)bar3(Y)subplot(223)barh(Y)subplot(224)bar3h(Y)087面积图Y=[5 1 2;8 3 7;9 6 8;5 5 5;4 2 3];subplot(221)area(Y)grid onset(gca,'Layer','top','XTick',1:5)sales=[51.6 82.4 90.8 59.1 47.0];x=90:94;profits=[19.3 34.2 61.4 50.5 29.4];subplot(222)area(x,sales,'facecolor',[0.5 0.9 0.6], 'edgecolor','b','linewidth',2) hold onarea(x,profits,'facecolor',[0.9 0.85 0.7], 'edgecolor','y','linewidth',2) hold offset(gca,'Xtick',[90:94])set(gca,'layer','top')gtext('\leftarrow 销售量') gtext('利润')gtext('费用')xlabel('年','fontsize',14)088函数的插值:x=0:2*pi;y=sin(x);xi=0:0.1:8;yi1=interp1(x,y,xi,'linear')yi2=interp1(x,y,xi,'nearest') yi3=interp1(x,y,xi,'spline')yi4=interp1(x,y,xi,'cublic')p=polyfit(x,y,3)yy=polyval(p,xi)subplot(3,2,1)plot(x,y,'o')subplot(3,2,2)plot(x,y,'o',xi,yy)subplot(3,2,3)plot(x,y,'o',xi,yi1)subplot(3,2,4)plot(x,y,'o',xi,yi2)subplot(3,2,5)plot(x,y,'o',xi,yi3)subplot(3,2,6)plot(x,y,'o',xi,yi4)089二维插值计算:[x,y]=meshgrid(-3:0.5:3);z=peaks(x,y);[xi,yi]=meshgrid(-3:0.1:3); zi=interp2(x,y,z,xi,yi,'spline') plot3(x,y,z)hold onmesh(xi,yi,zi+15)hold offaxis tight090函数表达式;function f=exlin(x)if x<0f=-1;elseif x<1f=x;elseif x<2f=2-x;elsef=0;end091:硬循环语句:n=5;for i=1:nfor j=1:nif i==ja(i,j)=2;elsea(i,j)=0;endendendwhile 循环语句:n=1;while prod(1:n)<99^99;n=n+1endn:092 switch开关语句a=input('a=?')switch acase 1disp('It is raning') case 0disp('It do not know')case -1disp('It is not ranging')otherwisedisp('It is raning ?')end093画曲面函数:x1=linspace(-3,3,30)y1=linspace(-3,13,34)[x,y]=meshgrid(x1,y1);z=x.^4+3*x.^2-2*x+6-2*y.*x.^2+y.^2-2*y; surf(x,y,z)。
matlab练习程序(递推最小二乘)
matlab练习程序(递推最⼩⼆乘)⼀般的最⼩⼆乘通常是⼀次拿到全部的数据,对所有数据进⾏统⼀优化计算得到模型系数。
递推最⼩⼆乘是以⼀种递推的⽅式计算最⼩⼆乘,每次使⽤最新的测量值,来不断更新模型系数。
递推公式如下:公式中A和B为测量值,X为模型系数。
matlab代码如下:clear all;close all;clc;a=2;b=2;c=-3;d=1;e=2;f=30; %原始系数[x,y]=meshgrid(0:0.1:30);z=a*x.^2+b*y.^2+c*x.*y+d*x+e*y +f; %模型mesh(x,y,z)hold on;%%准备数据X=x(:);Y=y(:);Z=z(:);p = randperm(90000,100); %90000个点中随机选100个X=X(p);Y=Y(p);Z=Z(p);plot3(X,Y,Z,'ro')%%正常最⼩⼆乘A=[X.^2 Y.^2 X.*Y X Y ones(length(X),1)];B=Z;C=inv(A'*A)*A'*B;%%递推最⼩⼆乘figure;plot3(X,Y,Z,'ro')hold on;P = eye(6)*1000;X = zeros(6,1);for i=1:length(A)A1 = A(i,:);% P = inv(inv(P)+A1'*A1);P = P - P*A1'*A1*P/(1+A1*P*A1');X = X + P*A1'*(B(i) - A1*X);end%%画出RLS计算出的结果a=X(1);b=X(2);c=X(3);d=X(4);e=X(5);f=X(6); %拟合系数[x,y]=meshgrid(0:0.1:30);z=a*x.^2+b*y.^2+c*x.*y+d*x+e*y +f; %模型mesh(x,y,z)拟合结果:从结果上看,递推最⼩⼆乘结果不如常规最⼩⼆乘精确。
matlab练习有程序超全
0102030405060-2000200理想采样信号序列05001000理想采样信号序列的幅度谱0102030405060-505理想采样信号序列的相位谱0102030405060-101理想采样信号序列0102030405060012理想采样信号序列的幅度谱0102030405060-505理想采样信号序列的相位谱00.51单位冲击信号序列0102030405060012单位冲击信号的幅度谱0102030405060-505单位冲击信号的相位谱00.51单位冲击信号序列0510单位冲击信号的幅度谱0102030405060-505单位冲击信号的相位谱特定冲击串卷积24单位冲击信号序列510单位冲击信号的幅度谱0102030405060 -55单位冲击信号的相位谱24系统hb[n]05101520253035404550-200200输入信号x[n]0102030405060708090100 -10001000输出信号y[n]204060输入信号的幅度谱204060输入信号的相位谱系统响应的幅度谱0204060系统响应的相位谱输出信号的幅度谱050100输出信号的相位谱246810121416012302402460246810121416-0.50.5102468101214161234123402468101214165101520程序一 for a=1:3 kk(a)=4-a; end for a=4:7 kk(a)=a-3; end for a=8:15 kk(a)=0; end123402468101214165101520close all;subplot(2,1,1);stem(kk);subplot(2,1,2);stem(abs(fft(kk,16)))程序二n=0:15; %定义序列的长度是15 a=0.1;f=0.0625;x=exp(-a*n).*sin(2*pi*f*n); close all;subplot(2,1,1);stem(x);subplot(2,1,2);stem(abs(fft(x)))程序三n=0:15; %定义序列的长度是15 p=8;q=2;x=exp(-1*(n-p).^2/q);close all;subplot(3,1,1);stem(abs(fft(x)))p=8;q=4;x=exp(-1*(n-p).^2/q); subplot(3,1,2);stem(abs(fft(x)))p=8;q=8;x=exp(-1*(n-p).^2/q);subplot(3,1,3);stem(abs(fft(x)))程序四n=1:50; %定义序列的长度是50hb=zeros(1,50); %注意:MATLAB中数组下标从1开始hb(1)=1;hb(2)=2.5;hb(3)=2.5;hb(4)=1;close all;subplot(3,1,1);stem(hb);title('系统hb[n]');m=1:50; %定义序列的长度是50A=444.128; %设置信号有关的参数a=50*sqrt(2.0)*pi;T=0.001; %采样率w0=50*sqrt(2.0)*pi;x=A*exp(-a*m*T).*sin(w0*m*T); %pi是MATLAB定义的π,信号乘可采用“.*”subplot(3,1,2);stem(x);title('输入信号x[n]');y=conv(x,hb);subplot(3,1,3);stem(y);title('输出信号y[n]');k=-25:25;X=x*(exp(-j*pi/12.5)).^(n'*k);magX=abs(X); %绘制x(n)的幅度谱subplot(3,2,1);stem(magX);title('输入信号的幅度谱');angX=angle(X); %绘制x(n)的相位谱subplot(3,2,2);stem(angX) ; title ('输入信号的相位谱')Hb=hb*(exp(-j*pi/12.5)).^(n'*k);magHb=abs(Hb); %绘制hb(n)的幅度谱subplot(3,2,3);stem(magHb);title('系统响应的幅度谱'); angHb=angle(Hb); %绘制hb(n)的相位谱subplot(3,2,4);stem(angHb) ; title ('系统响应的相位谱')n=1:99;k=1:99;Y=y*(exp(-j*pi/12.5)).^(n'*k);magY=abs(Y); %绘制y(n)的幅度谱subplot(3,2,5);stem(magY);title('输出信号的幅度谱'); angY=angle(Y); %绘制y(n)的相位谱subplot(3,2,6);stem(angY) ; title ('输出信号的相位谱')程序五n=1:50; %定义序列的长度是50x=zeros(1,50); %注意:MATLAB中数组下标从1开始x(1)=1;x(2)=2.5;x(3)=2.5;x(4)=1;close all;subplot(3,1,1);stem(x);title('单位冲击信号序列');k=-25:25;X=x*(exp(-j*pi/12.5)).^(n'*k);magX=abs(X); %绘制x(n)的幅度谱subplot(3,1,2);stem(magX);title('单位冲击信号的幅度谱'); angX=angle(X); %绘制x(n)的相位谱subplot(3,1,3);stem(angX) ; title ('单位冲击信号的相位谱')程序六n=1:50x=sign(sign(10-n)+1);close all;subplot(3,1,1);stem(x);title('单位冲击信号序列');k=-25:25;X=x*(exp(-j*pi/25)).^(n'*k);magX=abs(X); %绘制x(n)的幅度谱subplot(3,1,2);stem(magX);title('单位冲击信号的幅度谱'); angX=angle(X); %绘制x(n)的相位谱subplot(3,1,3);stem(angX) ; title ('单位冲击信号的相位谱') 程序7n=1:50; %定义序列的长度是50x=zeros(1,50); %注意:MATLAB中数组下标从1开始x(1)=1;close all;subplot(3,1,1);stem(x);title('单位冲击信号序列');X=x*(exp(-j*pi/12.5)).^(n'*k);magX=abs(X); %绘制x(n)的幅度谱subplot(3,1,2);stem(magX);title('单位冲击信号的幅度谱'); angX=angle(X); %绘制x(n)的相位谱subplot(3,1,3);stem(angX) ; title ('单位冲击信号的相位谱') 程序8n=0:50; %定义序列的长度是50A=1; %设置信号有关的参数a=0.4;T=1; %采样率w0=2.0734;x=A*exp(-a*n*T).*sin(w0*n*T); %pi是MATLAB定义的π,信号乘可采用“.*”close all %清除已经绘制的x(n)图形subplot(3,1,1);stem(x); %绘制x(n)的图形title('理想采样信号序列');k=-25:25;W=(pi/12.5)*k;X=x*(exp(-j*pi/12.5)).^(n'*k);magX=abs(X); %绘制x(n)的幅度谱subplot(3,1,2);stem(magX);title('理想采样信号序列的幅度谱');angX=angle(X); %绘制x(n)的相位谱subplot(3,1,3);stem(angX) ; title ('理想采样信号序列的相位谱')程序9n=0:50; %定义序列的长度是50A=444.128; %设置信号有关的参数a=50*sqrt(2.0)*pi;T=0.001; %采样率w0=50*sqrt(2.0)*pi;x=A*exp(-a*n*T).*sin(w0*n*T); %pi是MATLAB定义的π,信号乘可采用“.*”close all %清除已经绘制的x(n)图形subplot(3,1,1);stem(x); %绘制x(n)的图形title('理想采样信号序列');k=-25:25;W=(pi/12.5)*k;X=x*(exp(-j*pi/12.5)).^(n'*k);magX=abs(X); %绘制x(n)的幅度谱subplot(3,1,2);stem(magX);title('理想采样信号序列的幅度谱'); angX=angle(X); %绘制x(n)的相位谱subplot(3,1,3);stem(angX) ; title ('理想采样信号序列的相位谱')。
matlab考试题目及答案
matlab考试题目及答案1. 题目:编写一个MATLAB函数,实现计算并返回一个向量中所有元素的平方和。
答案:以下是一个简单的MATLAB函数,用于计算并返回一个向量中所有元素的平方和。
```matlabfunction sumOfSquares = calculateSumOfSquares(vector)sumOfSquares = sum(vector.^2);end```2. 题目:给定一个3x3的矩阵A,使用MATLAB编写代码,求出矩阵A 的转置。
答案:可以通过简单的转置操作来求得矩阵A的转置。
```matlabA = [1 2 3; 4 5 6; 7 8 9];A_transpose = A';```3. 题目:编写一个MATLAB脚本,实现对一个二维数组进行排序,并返回排序后的数组。
答案:以下是一个MATLAB脚本,用于对一个二维数组进行排序,并返回排序后的数组。
```matlabfunction sortedArray = sort2DArray(array)sortedArray = sort(array(:));end```4. 题目:给定一个向量x,使用MATLAB编写代码,计算并返回向量x的元素个数。
答案:可以通过内置函数`numel`来计算向量x的元素个数。
```matlabx = [1, 2, 3, 4, 5];numElements = numel(x);```5. 题目:编写一个MATLAB函数,实现计算并返回两个向量元素的点积。
答案:以下是一个简单的MATLAB函数,用于计算两个向量的点积。
```matlabfunction dotProduct = calculateDotProduct(vector1, vector2)dotProduct = dot(vector1, vector2);end```6. 题目:给定一个矩阵B,使用MATLAB编写代码,求出矩阵B的行列式。
MATLAB编程练习
MATLAB编程练习1. 建立一个脚本文件ex_1.m ,从键盘输入两个数a 和b ,如果a=b,显示“It is right ”。
2. 编写一函数文件function max_num=ex_2(a,b); a,b 为两个同型矩阵、从键盘输入一对下标(ii,jj ),返回a(ii,jj)与b(ii,jj)中较大的数。
3. 编写一函数文件function [r1,r2]=ex_3(a,b,c),求一元二次方程a*x.^2+b*x+c=0的根r1,r2;用r1、r2代入方程左边验证。
4. 编写一个函数文件function [area, perimete]=ex_4(r),求半径为r 的圆的面积与周长。
5. 编写一函数文件function fac=ex_5_1(n),求数n 的阶乘;再编写一脚本文件ex_5_2.m 、求sum_5=1!+2!+…+10!。
6. 编写一脚本文件ex_6.m 、从键盘输入x 、输出分段函数:≥--<≤-<=2122111222x x x x x x x y 当当当的函数值y 。
7. 有函数>=-<-=2)1log(2122x x x e y x 当当编写脚本文件ex_7.m 输出y ;x 的值从键盘输入。
8. 编写脚本文件ex_8.m ,功能:从键盘输入一个字符,如果是大写字母,输出其后继字母;如果是小写字母,输出其前导字母,(‘Z ’的后继为’A ’,‘a ’的前导为’z ’);如果是数字字符,输出其ASCII 码;其他字符原样输出。
9. 某商场对顾客购买的商品总额打折,规则是500以下不打折,500~1000的95折,1000~3000的9折,3000~5000的85折,5000以上8折。
编写脚本文件ex_9.m;从键盘输入购物总额,用switch语句计算,输出应付金额pay。
10.某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):price<200 没有折扣200≤price<500 3%折扣500≤price<1000 5%折扣1000≤price<2500 8%折扣2500≤price<5000 10%折扣5000≤price 14%折扣编写脚本文件ex_10.m;从键盘输入price,用if_elseif_else_end语句计算,输出实际销售价格price_pay。
matlab练习程序(生成希尔伯特曲线)
matlab练习程序(⽣成希尔伯特曲线)能够使⽤这样⼀条线遍历图像中所有的像素,不过这⾥没有这样做,⽽只是⽣成了这样⼀条曲线。
程序中h,w是最终图像的⾼和宽,n为希尔伯特曲线阶数。
这⾥如果n等于log2(h)或log2(w),则图像就全为⽩了,也算是正好遍历所有像素了。
当然,n很⼤的话,图像也是全为⽩的,不过,那样不算正好遍历吧。
代码中⽣成曲线的核⼼函数可以在。
⽣成图像如下:matlab代码如下:main.mclear all;close all;clc;h=256;w=256;n=5;imgn=zeros(h,w);[x,y]=hilbert(n);x=floor((x+0.5)*w)+1;y=floor((y+0.5)*h)+1;l=length(x);for i=1:l-1imgn=drawline(imgn,x(i),y(i),x(i+1),y(i+1));endimshow(imgn)hilbert.mfunction [x,y] = hilbert(n)%HILBERT Hilbert curve.%% [x,y]=hilbert(n) gives the vector coordinates of points% in n-th order Hilbert curve of area 1.%% Example: plot of5-th order curve%% [x,y]=hilbert(5);line(x,y)%% Copyright (c) by Federico Forte% Date: 2000/10/06if n<=0x=0;y=0;else[xo,yo]=hilbert(n-1);x=.5*[-.5+yo -.5+xo .5+xo .5-yo];y=.5*[-.5+xo .5+yo .5+yo -.5-xo];enddrawline.mfunction img=drawline(img,x1,y1,x2,y2) %因为图像坐标和数学函数坐标y轴朝向相反,所以这⾥所有y变量取相反数y1=-y1;y2=-y2;if x1~=x2k=(y2-y1)/(x2-x1);b=y1-k*x1;mi=min(x1,x2);ma=max(x1,x2);for i=mi:maimg(-round(i*k+b),i)=1;endendif y1~=y2k=(x2-x1)/(y2-y1);b=x1-k*y1;mi=min(y1,y2);ma=max(y1,y2);for i=mi:maimg(-i,round(i*k+b))=1;endendend。
matlab代码练习
第一篇:十分钟学会GUI系列视频教程%hf得到figure的句柄 color设定当前图形界面的背景颜色Menu设定当前的菜单栏hf = figure('Units','Normalized',...'Position',[0.2 0.2 0.5 0.5],...'Color','w','Menu','none');%ha得到axes的句柄属性有Uints,Position,Box ,NextPlotha=axes(...'Parent',hf,...'Units','Normalized',...'Position',[0.1 0.1 0.6 0.8],...'Box','on',...'NextPlot','Add');%uicontrol可以设置按钮等控件其通过style进行区分不同的属性%相关属性有Position ,callback回调函数位置设定等,%第三行的代码可以没有 callback函数中Plot函数的步长必须一致,否则%不一致的话坐标轴就会不搭配hb1 =uicontrol(...'Parent',hf,...'Units','Normalized',...'Style','pushbutton',...'Callback','plot(sin([0:0.01:2*pi]),''g'')',...'String','sinx',...'Units','Normalized',...'Position', [0.75 0.1 0.15 0.1]);hb2 = uicontrol(...'Parent',hf,...'Units','Normalized',...'Style','pushbutton',...'Callback','plot(cos([0:0.01:2*pi]),''r'')',...'String','cosx',...'Units','Normalized',...'Position', [0.75 0.2 0.15 0.1]);hb3 = uicontrol(...'Parent',hf,...'Units','Normalized',...'Position',[0.75 0.3 0.15 0.1],...'Style','pushbutton',...'Callback','try delete(allchild(ha));end',...%注意此处的用法'String','delete');hf=figure(); %()可没有get(hf);set(hf,'Color','y');set(hf,'Menu','none'); %或者使用set(hf,'Menubar','none');set(hf,'NumberTitle','off','Name','示例'); %设置标题pause(1); %停下1秒set(hf,'visible','off'); %设置窗口不可见pause(1);set(hf,'visible','on'); %设置窗口可见set(hf,'WindowKeyPressFcn','Closereq'); %按键关闭窗口set(hf,'WindowButtonDownFcn','Closereq');%按下鼠标关闭窗口hb=uicontrol(...'parent',hf,... %这句可有可无'Style','PushButton',...'Callback','closereq');%axes 注意下面的两种方式创建一个坐标轴%①在原来父对象的基础上创建新的坐标对象ha=axes('Parent',hf,...'Box','on',...'NextPlot','add');%②与原来的图形对象没有关系,直接创建一个坐标轴ha=axes; %可有();set(ha,'NextPlot','add'); %注意set函数的使用,(对象,属性名,属性值,属性名,属性值,...)plot([0:200]);plot(sin([0:0.01:3]));%坐标轴的设定ha=axes();set(ha,'NextPlot','add');%line对象的使用hll=ezplot('cos(x)'); %ezplot('函数名');hl2=ezplot('sin(x)');set(hl2,'Color','r',...'Marker','p',... %设置标记为五角星符号'MarkerEdgeColor','g',... %设置符号的边沿颜色为green'MarkerFaceColor','k'); %设置里面的颜色为blackset(hll,'Color','r',...'Marker','p',...'MarkerEdgeColor','g',...'MarkerFaceColor','k');%line对象的xData,yData的使用hl1=ezplot('sin(x)');hl_x=get(hl1,'XData');hl_y=get(hl1,'YData');plot(hl_x,hl_y);% textha=axes;ht=text(1,0.5,'示例'); %其中的前两个参数是指示例这两个字的位置坐标(1,0.5)%源程序中的代码,不懂????text('String','\int_0^x dF(x)','Position',[0.5 0.5]);text('Interpreter','latex','String','$$ \int_0^x dF(x) $$','Position',[0.2 0.2]);% 原始的语句写出来plot(x);% 在原始语句两边加上单引号'plot(x)';% 当原始语句中含有引号,那么将原始的单引号都改为两个单引号,然后在最外层加上一对单引号'plot(x,y,''r'')';uigetfile%uigetfile的返回值【文件名,文件路径,点击“是”还是“否”】[a,b,c]=uigetfile;%规定打开文件的类型uigetfile('*.m');uiputfile%输出参数的意义[e,f,g]=uiputfile;%补充一些uicontrol的用法% handle = uicontrol('Name,Value,...)% handle = uicontrol(parent,'Name,Value,...)%uisetcolor 设置颜色uisetcolorhl = plot([1:10]);a = uisetcolor(hl); %将plot所绘制的曲线的颜色设置的值给a,方面后续的操作例如:%注意以下三种写法的区别(三种效果都不一样)%① callback 可以跟多个语句,算法为:选择一种颜色,把这种颜色给buttonb=uicontrol('Parent',gcf,'Style','pushbutton','String','颜色设置',...'callback','c=uisetcolor;set(b,''BackgroundColor'',c);');%②参照下面字体的设置,可见直接操作button对象的句柄,默认操作的是string b=uicontrol('Parent',gcf,'Style','pushbutton','String','颜色设置',...'callback','uisetcolor(b)');%③将背景和字体都进行了设置b=uicontrol('Parent',gcf,'Style','pushbutton','String','颜色设置',...'callback','c=uisetcolor(b);set(b,''BackgroundColor'',c);');%uisetfont 设置字体S=uisetfont;figure;hb=uicontrol('Parent',gcf,'Style','Pushbutton','String','字体设置',...'callback','d=uisetfont(hb)','Position',[0.2,0.2,0.5,0.5],'Units','Normalized');%普通对话框dialogh=dialog('name','关于...','Position',[200,300,500,200]);%下面这两种方式都可以关闭对话框%①uicontrol('Parent',h,'Style','PushButton','Position',[20,30,50,20],...'String','确定','Callback','closereq');%closereq:Default figure close request function%②uicontrol('Parent',h,'Style','PushButton','Position',[20,30,50,20],...'String','确定','Callback','delete(gcbf)');%这里的gcbf是返回所被回调函数执行的对象的所有句柄%Handle of figure containing object whose callback is executingerrordlg('this is a errordlg');warndlg('this is a warndlg');%输入对话框inputdlg%inputdlg的语法 nswer = inputdlg(prompt,dlg_title,num_lines)inputdlg('请输入姓名','please input the name')inputdlg('请留言','留言',4);%输入多个文本框时,可以使用元胞数组name=inputdlg({'请输入姓名','请输入性别'},'实例');%列表对话框% listdlg [Selection,ok] = listdlg('ListString',S)[select,ok]=listdlg(... %这里的字母不区分大小写'Name','选择列表',...'ListString',{'a','b','c','d'},...'OKString','确定',...'CancelString','取消',...'SelectionMode','Single'...);第二篇:GUI设计笔记hb=figure('toolbar','none','menubar','none','numbertitle','off','units','normalized',... 'position',[0.2 0.2 0.5 0.5],'name','moving');close allclearhf=figure;%movegui(hf,'center'); %不懂ha=axes('units','normalized','position',[0 0 1 1])% imshow('B.bmp') 利用imshow(file)无法使得图像铺满整个坐标轴CData=imread('B.bmp');image(CData);axis offstrcell={'二二更健康','哈哈','呵呵','嘻嘻'};for i=0:numel(A)strtemp=strcell{i};str=str(:)';text('string',str,'position',[700-100*i 300],'Horizoontal','right',...'fontname','华文行楷','fontsize',12,'fontwight','bold');endA=[2,3;3,5;2 0];size(A)length(A)numel(A) %获取数组的元素的数目number of element in the array%figure(1) %创建句柄值为1的图形界面figure(1);set([0,1],'units','normalized'); %将root 和figure 的uints(单位)设置为normalized(归一化,按着比例缩放)get([0,1],'units');%gca 当前坐标轴的句柄gcf 当前图形界面的句柄%窗口figure的设置h=figure('units','pixels','Position',[200 300 400 200],'menubar', 'none','name','恭喜','numbertitle','off');%也可以用结构体来设置一个窗口fig.units = 'pixels';fig.position=[200 300 400 200];fig.nemubar='none';='恭喜';fig.numbertitle='off';%delete()hf=figure;t=0:0.001:2*pi;x=sin(t);hp=plot(t,x);pause(2);delete(hp); %删除该句柄,图形被删除pause(2);delete(hf);%findall 查找findall(gcf) %查找当前窗口的所有的子对象h=findall(0,'type','figure');delete(h); %删除当前的窗口,窗口将会被关闭%delete 将删除一个对象hf=figure();pause(1);delete(hf);%clf 清空当前figure窗口对象hf=figure;ha=axes;pause(1);clf;%cla 清空当前的坐标轴hf=figure();ha=axes();hl=ezplot('sin(x)');pause(1);cla;%close 关闭窗口hf=figure('units','normalized','Position',[0.2 0.5 0.5 0.4],'menubar','none','numbertitle','off','name','close'); pause(3);close(hf); %参数可以为句柄值hf=figure('units','normalized','Position',[0.2 0.5 0.50.4],'menubar','none','numbertitle','off','name','close');pause(3);close('close'); %参数也可以是figure的name%close all force 强行关闭无法关闭的窗口hf=figure('units','normalized','Position',[0.2 0.5 0.50.4],'menubar','none','numbertitle','off','name','close');pause(3);close force%程序控制执行uiwait()等待 uiresume() 继续执行%uiwait(h)等待figure对象h被删除之后才继续执行/uiwait(h,timeout) 等待被删除或者时间溢出(单位为s)%uiresume 继续执行由uiwait之后的语句%组合键ctrl+c可以退出死循环%visible on/off 可以设定figure是否可见figureaxespausehf=figure('visible','off');%closerequestfcnfigure;ezplot('sin(x)');CloseRequestFcn;hq=questdlg('if you close current windows','close now?','yes','no','cancel');switch hqcase 'yes'delete(gcf);case 'no'returnend%文件I/O操作a=ls %查看该目录下的所有文件b=dir('*.gif'); %查找该目录下所有的gif图片M=[2 4 5 7 5 34]; %将某个数组存入到xls表格中xlswrite('a1',M);%图像的操作imread/imwriteM=imread('1380412466870_mh1392209058037.jpg'); %读取一个图像imwrite(M,'b.bmp'); %另存为一个图像(该函数没有返回值)imwrite(M,'B.png'); %注意:该函数不能讲次图片内存为一个gif的图像%将一个图像读取到坐标轴上面imshow imageimshow('B.png'); %坐标轴会自适应图片坐标轴隐藏了ColorData=imread('b.bmp'); %iamge()图片自适应坐标轴(图像会变形失真)image(ColorData); %这两句共同显示一张图片,其实是先读取一个图片变为数组%在将数组转化为一个一个图片(个人感觉imshow才是真正的读取图片)%音频的操作wavread audioplayer%[data,Fs,nBits]=wavread('回应.wav');%player=audioplayer(data,Fs);%play(player);%A=ones(1000);%player=audioplayer(A,7400,8);%play(player)%[data,Fs,nBites]=wavread('music.wav');%ao=analogoutput('winsound');%nChannel=size(data,2);%addChannel(ao,1:nChannel);%set(ao,'sampleRate',Fs);%set(ao,'BitsPerSample',nBites);%putdata(ao,data);%start(ao);%stop(ao);%文件I/O操作a=ls %查看该目录下的所有文件b=dir('*.gif'); %查找该目录下所有的gif图片M=[2 4 5 7 5 34]; %将某个数组存入到xls表格中xlswrite('a1',M);%图像的操作imread/imwriteM=imread('1380412466870_mh1392209058037.jpg'); %读取一个图像imwrite(M,'b.bmp'); %另存为一个图像(该函数没有返回值)imwrite(M,'B.png'); %注意:该函数不能讲次图片内存为一个gif的图像%将一个图像读取到坐标轴上面imshow imageimshow('B.png'); %坐标轴会自适应图片坐标轴隐藏了ColorData=imread('b.bmp'); %iamge()图片自适应坐标轴(图像会变形失真)image(ColorData); %这两句共同显示一张图片,其实是先读取一个图片变为数组%在将数组转化为一个一个图片(个人感觉imshow才是真正的读取图片)%音频的操作wavread audioplayer[data,fs,bits]=wavread('回应.wav');player=audioplayer(data,fs,bits);play(player);%核心图像对象%image的核心属性是CData 它定义了一个图像的数据%line的核心属性石Xdata,Ydata,Zdata%text的核心属性是string%图像对象A=rand(120);%方式1%h=image(A);%方式2h=image; %创建一个图像对象axis tight %设置坐标轴自适应图像set(h,'CData',A); %将图像对象的核心属性CData大小设置为A%line 画一条线x=0:0.001:2*pi;y=sin(x);line(x,y,'marker','o');x=[2,4];y=[2,4];line(x,y,'markerfacecolor','r'); %从(2,2)开始到(4,4)结束% 动态改变线宽t=0:0.002:2*pi;x=0.5*sin(t);y=0.5*cos(t);hl=plot(x,y,'marker','o','markersize',2)axis equalpausei=0;for i=1:100set(hl,'markersize',i);i=i+1;pause(0.002);end%line绘制一个点figure;axes;x=0;y=1;line(x,y,'marker','o','markersize',12,'markerfacecolor','r');%或者plot(x,y,'o');%可以设定x,y在坐标轴的位置figureaxeshold online('xData',1,'yData',1,'marker','o','markersize',12);%text对象%属性有:string fontsize fontweight fontname(字体的名称)color%color position(不是像素或者比例定的位置,而是坐标点'position',[2 1]表示在(2,1)显示该字符)figure('toolbar','none','numbertitle','off','menubar','none','name','picture'); %图像ha=axes('units','normalized','position',[0 0 1 1]); %轴CData=imread('B.bmp'); %读一张图片image(CData);axis offstr={'二','二','更','健','康'};for i=1:numel(str)strtemp=str(i);text('string',strtemp,'fontsize',25,'fontname','华文行楷','fontweight','bold',...'position',[210+30*i 50],'color','g');pause(0.5);end%text的简单用法,也可以用下面的语句axestext(0.5,1,'sinx')%uicontrol 属性有backgroundcolor (对象的背景颜色) CData(对象图案) Position%type、visual、uints,string,fontsize(string的大小)h=uicontrol; %默认是一个按钮M=imread('b.bmp'); %读取一张图像%imshow(M);uicontrol('style','pushbutton','backgroundcolor','g',...'CData',M,'units','normalized','position',[0.2 0.4 0.5 0.3],...'string','photo','fontsize',12) %'CData作为字符串M是数据,不需要加%通过uicontrol(h)设置h为当前的操作对象实现自动聚焦的功能hf=figure('menubar','none','toolbar','none','units','normalized','position',[0.2 0.2 0.5 0.5],...'visible','off');ht=uicontrol('style','edit','string','请输入一个参数',...'fontsize',12,'units','normalized','position',[0.2 0.4 0.5 0.1]);uicontrol('style','pushbutton','string','设置','fontsize',12,'units','normalized','position',[0.4 0.2 0.1 0.1],...'callback','uicontrol(ht)');set(hf,'visible','on');%uicontrol的应用hf=figure('toolbar','none','menubar','none','numbertitle','off');ha=axes;axis([0 8 -1.5 1.5]);xlabel('x');ylabel('y');x=0:0.002:2*pi;y=sin(x);hl=line(x,y);set(0,'defaultuicontrolfontsize',12);uicontrol('style','pushbutton','string','加号','units','normalized','position',[0.1 0 0.08 0.07],'callback',...'set(hl,''marker'',''+'')');uicontrol('style','pushbutton','string','虚线','units','normalized','position',[0.2 0 0.08 0.07],'callback',...'set(hl,''linestyle'',''--'')');uicontrol('style','pushbutton','string','蓝色','units','normalized','position',[0.3 0 0.08 0.07],'callback',...' set(hl,''color'',''y'')');figureaxesaxis equalaxis([-2 2 -2 2]);axis manual %固定坐标轴hold ont=0:0.02:2*pi;x=sin(t);y=cos(t);for i=1:numel(t)line('xdata',x(i),'ydata',y(i));pause(0.0002);end%同时画图figureaxesaxis equalaxis([0 8 -1 1]);axis manual %固定坐标轴hold ont=0:0.02:2*pi;x=sin(t);y=cos(t);for i= 1:numel(t)plot(t(i),x(i),'g');plot(t(i),y(i),'r');pause(0.0002);hold onend%定时器的操作%创建一个定时器t=timer('Tag','t1','name','timer1');%利用tag属性或者name属性可以查找该定时器timerfind(t,'tag','t1');timerfind(t,'name','timer1');%采用running属性查找timerfind(t,'running','off');%定时器的操作步骤% 1.创建定时器%①period 定时周期%②TimeFcn 定时执行的回调函数%③BusyMode 闲忙状态%④ExecutionMode 执行模式用于精确定时%另外常用:在延时时可以设置startdelay属性,当需要该定时器时可以用name/tag查找t=timer('period',1,'TimerFcn',@timeupdate,'busymode','queue',...'ExecutionMode','fixedRate');start(t);%2. 编写回调函数% callback函数的声明和使用% h为定时器对象的句柄func 是用户自定义函数StartFcn是定时器的属性set(h,'StartFcn','func');set(h,'StartFcn',@func);set(h,'StartFcn',{'func',3,5});set(h,'StartFcn',{@func,3,5});%3. 启动定时器对象% 采用start或者startat函数启动定时器%4.停止定时器对象%1.stop 函数停上%2.执行完TimerFcn%3.产生错误时,先调用ErrorFcn 再调用StopFcn%5删除定时器对象delete(t)%预定义对话框%颜色设置对话框uisetcolor%字体设置对话框uisetfont%提问对话框questdlg%警告对话框warndlg%错误对话框errordlg%帮助对话框helpdlg%普通对话框diadlg%输入对话框inputdlg%进度条对话框waitbar%uisetcolorc=uisetcolor(h,'colortitle');c=uisetcolor('colortitle') %它里面的参数一般是颜色对话框的tilte%返回值为选的颜色%uisetfont%返回值s是一结构体s=uisetfont(h,'fonttitle');%h是设置对象的句柄s=uisetfont('fonttitle');%其结果如下:% FontName: 'Arial Unicode MS'% FontWeight: 'bold'% FontAngle: 'italic'% FontSize: 24% FontUnits: 'points'%如果要设置某一个量,可以利用结构体的访问s.FontNamehf=figure('toolbar','none','numbertitle','off','menubar','none','name','font/color set');ha=axes('units','normalized');hte=text(0.5,0.5,'sinx');hti=title('哈哈');%title和text都有color,fontsize,fontweight,fontname属性%回调函数是多个语句的时候,可以用;隔开uicontrol('style','pushbutton','units','normalized','position',[0.2 0.2 0.1 0.1],...'callback','set(hte,''color'',uisetcolor(''请选择颜色''))','string','颜色选择');uicontrol('style','pushbutton','units','normalized','position',[0.2 0.1 0.1 0.1],...'callback',...'s=uisetfont(''请选择字体'');set(hte,''fontsize'',s.FontSize);set(hti,''fontweight'',s.FontWeight);set(hti,''FontName'',s.FontNam e)',...'string','字体选择');%waitbar(x,'title') x是完成的进度,0~1之间gca; %设置当前坐标轴用于绘制曲线h2=waitbar(0,'开始绘图...','windowstyle','modal');t=0:0.001:pi;for i=0:10plot(t,sin(2*pi*i*t));waitbar(i/10,h2,['已完成',num2str(10*i)]);pause(0.5);endclose(h2);%错误对话框errordlg('string','title')errordlg('输入的参数有误','提示')%警告对话框warndlg('string','title')warndlg('范围已超出','警告');%帮助对话框helpdlg('string','title')helpdlg('单击右键选择界面','提示');%提问对话框questdlg('question string','title')questdlg('你确定这么做吗','提问');%输入对话框inputdlg('prompt','title') prompt是提示信息可以是字符串也可以是数组inputdlg('请输入参数','输入提醒');inputdlg({'用户名','密码'},'登陆框');%inputdlg('string','title',max_line) %max_line是最大输入行数inputdlg('留言','留言框',3)%subplot的其他用法subplot(3,2,4)subplot(3,2,5)subplot(3,2,6);subplot(3,2,[5 6])subplot(3,2,[1 3])subplot(3,2,[1 6])subplot(3,2,[2 6])subplot(3,2,[3 4 5])subplot 324%绘图工具%axis 设置坐标轴的范围%box 显示或者隐藏坐标轴的边框 box on/off%grid 设置网格线 grid on/off/minor(次网格线)%例如:subplot 221plot(sin(0:2*pi/1000:2*pi));box off %注意:必须先画图,在设置坐标轴边框subplot 222plot(sin(0:2*pi/1000:2*pi));subplot(2,2,[3 4]);plot(sin(0:2*pi/1000:2*pi));grid minor %画出次网格线%axis的设置axis[xmin xmax ymin ymax] %设置坐标轴的范围axis manual %保持当前坐标轴的范围不变即为冻结坐标轴axis auto %将数据的范围自动适应坐标轴的范围axis tight %将坐标轴的范围设置为数据值的范围axis equal %坐标轴等刻度axis square %坐标轴等长,坐标轴的刻度自适应图像,使图像保持原状% axis equal /squaret=0:2*pi/1000:2*pi;x=sin(t);plot(t,x);axis equalt=0:2*pi/1000:2*pi;x=sin(t);plot(t,x);axis squareaxis off %只显示图像其他的什么也不显示对应axis on%绘图注释%legend 创建数据图例%title 创建标题%xlabel ylabel 两个方向上的坐标标签% legend('string','string');t=0:2*pi/1000:2*pi;x=sin(t);y=cos(t);plot(t,x,t,y,'m-');legend ('正弦','余弦');%title('string','fontmame','字体'); 后两个可以不要t=0:2*pi/1000:2*pi;x=sin(t);y=cos(t);plot(t,x,t,y,'m-');title('正弦,余弦曲线','fontname','楷体');axis equal%绘制一个圆(体会axis equal和axis square的用法)t=0:0.001:2*pi;x=3*cos(t);y=3*sin(t);plot(x,y);axis equal %axis square也行%绘制一个矩形(体会plot的真实含义)x=[1,4,4,1,1];y=[1,1,4,4,1];plot(x,y);title('矩形','fontname','楷体');grid onbox onlegend('矩形');axis([0 5 0 5]);%体会fill和plot的不同x=[1,4,4,1]; %不需要五个,四个就行了y=[1,1,4,4];fill(x,y,'g'); %最后一个参数必须有title('矩形','fontname','楷体');grid onbox onlegend('矩形');axis([0 5 0 5]);function chang_color()k=input('please input a number to change the color','s')switch kcase 1set(gcf,'color','g');case 2set(gcf,'color','k');case 3set(gcf,'color','m');otherwiseset(gcf,'color','y');endend% 波形的合成产生60hz和150hz的信号x=0:0.0002:0.06;y=sin(2*pi*60*x);z=sin(2*pi*150*x);t=z+y;plot(x,y,'r');hold onplot(x,z,'g');plot(x,t)% 产生60hz和150hz的带有噪声的信号% plot()如果是需要画出某些点的值而不是连成的先,可以t(1:50)这种写法% plot() 如果是多个点的话,会自动连成线,如果单个点的话,会打印一个点t=0:0.0002:0.06;x=sin(2*pi*60*t)+sin(2*pi*150*t);y=x+2*randn(size(t));%plot(t,y,'y');hold onplot(1000*t(1:50),1000*y(1:50),'g+'); %50个点%也可以这样代替%x=linspace(0,2*pi,30);%y=sin(x);%for i = 1:30%plot(x(i),y(i),'r+');%hold on%end%plot(1000*t,y,'m-');xlabel('time(ms)')grid onY=fft(y,512);x=-pi:0.02:pi;y=sin(x);plot(x,y);line([-5 5],[0 0]); %第一个参数为x坐标的变化第二个参数为y坐标的变化%数据拟合%多项式拟合ployfit()x=0:0.1:1;y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.3 11.2];n=2;p=polyfit(x,y,n);xi=linspace(0,1,100);yi=polyval(p,xi);plot(x,y,'m',xi,yi,'g');xlabel('x');ylabel('y');x=0:0.01:2*pi;y=sin(x);y1=y-1;n=12;p=polyfit(x,y1,n);xi=linspace(0,2*pi,100);yi=polyval(p,xi);plot(x,y,'m',xi,yi,'r');for i=1:20x=0:0.02:2*pi;y=sin(5000*x).*cos(5000*x);sound(y);pause(0.8);y=sin(2000*x).*cos(2000*x);sound(y);pause(0.4);y=sin(1000*x).*cos(1000*x);sound(y);pause(2);endx=-pi:0.02:pi;y=sin(x);plot(x,y);title('正弦曲线');axis equalxlabel('x值');ylabel('y值');text(0.8,0.5,'正弦曲线','sc')%line([-pi,pi],[0,0]);grid on %打开网格线pause(3);grid offgtext('正弦曲线'); %将鼠标点到哪儿哪儿就会出现要显示的字符t=0:0.02:10*pi;x=sin(t);y=cos(t);z=t;plot3(x,y,z);xlabel('x');ylabel('y');zlabel('z');title('螺旋线')t=0:0.02:10*pi;subplot(2,2,1);x=sin(t);plot(t,x);axis equalsubplot(2,2,2);y=cos(t);plot(t,y);axis equalsubplot(2,2,4);z=tan(t);z=plot(t,z);axis equalf='sin(x)';a=diff(sym(f)); %求微分b=int(sym(f)); %求积分% ax^2+bx+ceq='a*x^2+b*x+c=0';rh0=(1+sqrt(5))/2;sym(rh0,'f');a=input('a=');w=input('w=');r=input('r=');x=a*cos(wt+r);dx=diff(x,t);plot(t,dx);%微分的应用syms a x b c %使用符号变量之前需要声明一下f=sym('a*x^2+b*x+c');df=diff(f);df2=diff(f,2);df22=diff(f,x,2);df3=diff(f,a);df33=diff(f,a,2);%积分的应用syms a xf=sym('a*cos(x)');sf=int(f,x,1);syms a b;s=a*cos(b*x);int(s,x,cos(a),sin(b));syms x1s=x1*(log(2*x1));int(s,x1,2)%定积分的应用%求x1*log(x1+1)从0到1的积分syms x1s=x1*log(x1+1);si=int(s,x1,0, 1);%偏微分的应用syms x yf=x*sin(y);dfdxdy=diff(diff(f,x),y)%两重积分% f=x*exp(-x*y)f=x*exp(-x*y);sf=int(int(f,x),y)% simple函数的应用syms a x b cf=c*cos(a*x+b);sf=int(f,x);df=diff(sf,x);dff=simple(df);%微积分的求解实例syms xf=1/(5+4*cos(x));ezplot(f)f1=diff(f);ezplot(f1)f2=diff(f,2);ezplot(f2);s1=int(f2,x);%s2 = int(int(f2,1),1) 注意这里的没有积分的重数这个参数,二重积分写成int(int(f)) s = int(int(f2,x),x);ezplot(s2)ezplot(sin(x),[-pi pi]) %ezplot() 后面的两个参数是x的范围,用一个数组表示x=t*sin(t);y=t*cos(t);ezplot(x,y,[0 4*pi]);hold onx2=t*sin(t);ezplot(x2,y2);%小球绕轨迹运动ha=axes('units','normalized','position',[0.1 0.1 0.7 0.7]);axis equalhold on%产生一个圆t=0:0.008:2*pi;x=2*sin(t);y=2*cos(t);line(x,y,'linewidth',2);%创建一个小球 %line 对象后marker,markerfacecolor(填充颜色)标记的大小hbobble=line('xData',0,'yData',1,'marker','o','markerfacecolor','r','markersize',15)%初始化设置npos=length(t);ipos=1;delt=0.0001;isforward=true;while ishandle(hf)set(hbobble,'xdata',x(ipos),'ydata',y(ipos));drawnow; %刷新屏幕pause(delt);ipos=ipos-(-1)^isforward; % isforward 是控制旋转方向的等价于ipos=ipos+1;ipos=ipis-1;if ipos == npos %这是正这走(ipos增大一直到最大长度)ipos = 1;elseif ipos == 0 %这是逆着走(ipos先减小到0 然后赋值为最大值,让其一直减小ipos=npos;endend%小球在环套里运动ha=axes('units','normalized','position',[0.1 0.1 0.7 0.7]);axis equal%axis offhold ont=0:0.01:2*pi;%内径y1=1.65*cos(t);line(x1,y1,'linewidth',2,'color','g');%外径x2=1.95*sin(t);y2=1.95*cos(t);line(x2,y2,'linewidth',2,'color','m');%小球的轨迹x=1.8*sin(t);y=1.8*cos(t);line(x,y,'linewidth',2,'color','w');%创造一个小球ball=line('xData',0,'yData',1.8,'marker','o','markersize',18,'markerfacecolor','k') %参数初始化ipos=1;delay_time=0.002;npos=length(t); %npos=numel(t)也可以%转动while 1if ipos == npos%ipos=1;break;endset(ball,'xData',x(ipos),'yData',y(ipos));drawnow;ipos=ipos+1;pause(delay_time);end%先画出螺旋线t=linspace(0,10*pi,3000);x=40*sin(t);y=40*cos(t);z=t;plot3(x,y,z);%下面是comet的示例%t=linspace(0,2*pi,3000);%x=sin(t);%y=cos(t);%comet(x,y,0);%斜下抛vx=20;vy=20;t=0:0.02:30;x=vx*t;y=vy*t-9.8*t.^2/2;comet(x,y);%斜上抛因为由于速度的合成:vx.^2+vy.^2=定值vx = 100*cos(1/4*pi);vy = 100*sin(1/4*pi);t = 0:0.001:15;x = vx*t;y = vy*t-9.8*t.^2/2;comet(x,y)%一般的过程%擦除重绘模式动画%选择一个擦除模式set(h,'erasemode',erasemode);%h由plot或者line生成%刷新数据for i=1:nset(h,'Xdata',xdata,'Ydata',ydata); %h由plot或者line生成drownnow;endobj=videoinput('winvideo'); set(obj,'IriggerRepeat',inf); set(obj,'Framesperirigger',1); preview(obj);。
matlab简单编程21个题目及答案
1、设⎥⎦⎤⎢⎣⎡++=)1(sin35.0cos2xxxy,把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线。
第一题的matlab源程序:①考虑cos(x)为一个整体,然后乘以中括号里面的全部x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x).*(0.5+3*sin(x)./(1+x.^2)); %y的表达式plot(x,y)%画出图形图如下:②考虑对整体求解cos,先求x乘以括号中的部分x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x.*(0.5+3*sin(x)./(1+x.^2))); %y的表达式plot(x,y) %画出图形图如下:2、产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。
并求该矩阵全体数的平均值和均方差。
第二题的matlab源程序如下:R1=randn(8,6) %产生正态分布随机矩阵R1 =1.0933 -0.7697 1.5442 -0.1924 1.4193 0.21571.1093 0.3714 0.0859 0.8886 0.2916 -1.1658-0.8637 -0.2256 -1.4916 -0.7648 0.1978 -1.14800.0774 1.1174 -0.7423 -1.4023 1.5877 0.1049-1.2141 -1.0891 -1.0616 -1.4224 -0.8045 0.7223-1.1135 0.0326 2.3505 0.4882 0.6966 2.5855-0.0068 0.5525 -0.6156 -0.1774 0.8351 -0.66691.5326 1.1006 0.7481 -0.1961 -0.2437 0.1873aver=(sum(R1(1:end,1:end)))./8 %产生各行的平均值aver =0.0768 0.1363 0.1022 -0.3473 0.4975 0.1044a=std(R1(1:end,1:end)) %产生各行的均方差也就是标准差a =1.0819 0.8093 1.3456 0.8233 0.8079 1.2150aver1=(sum(R1(:)))./48 %全体数的平均值aver1 =0.0950b=std(R1(:)) %全体数的均方差即标准差b =1.01033、设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y 曲线。
MATLAB编程作业
《Matlab编程训练》作业专业学生姓名班级学号指导教师完成日期实训一 MATLAB 语言介绍和数值计算1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存变量。
122sin 851z e =+.2. 已知 1234413134787,2033657327A B --⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦,求下列表达式的值:(1) A+6*B 和A-B+I (其中I 为单位矩阵) A+6*B:A-B+I:(2)A*B和A.*BA*B程序:A=[12 34 -4;34 7 87;3 65 7]B=[1 3 -1;2 0 3;3 -2 7]c=A*B结果:A.*B程序:A=[12 34 -4;34 7 87;3 65 7]B=[1 3 -1;2 0 3;3 -2 7]D=A.*B结果:(3)A^3和A.^3A^3程序:A=[12 34 -4;34 7 87;3 65 7]E=A^3结果:A.^3程序:A=[12 34 -4;34 7 87;3 65 7]C=A.^3(4)A/B及B\AA/B程序:A=[12 34 -4;34 7 87;3 65 7]B=[1 3 -1;2 0 3;3 -2 7]C=A/B结果:B\A程序:A=[12 34 -4;34 7 87;3 65 7]B=[1 3 -1;2 0 3;3 -2 7]D=B\A结果:(5)将矩阵C=B\A的右下角2*2子矩阵赋给D, 并(3)保存变量(mat文件)程序:A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7];C=B*inv(A);D=C(2:3,2:3)结果:3. 求得矩阵⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=34157864653434533145A 的每行最大元素所在的位置?(至少两种方法) 第一种:A=[5 14 33;45 43 3;65 4 6;78 15 34][RowMax Order]=max(A')结果:第二种:A=[5 14 33;45 43 3;65 4 6;78 15 34][Max_num,index]=max(A,[],2)结果:实训二 MATLAB 编程基础1. 求[25,1258]之间能被15整除的数的个数。
matlab试题及答案开卷
matlab试题及答案开卷1. MATLAB基础操作在MATLAB中,如何创建一个名为“myMatrix”的3x3矩阵,其元素从1到9按顺序排列?答案:在MATLAB中,可以使用以下命令创建名为“myMatrix”的3x3矩阵:```matlabmyMatrix = [1 2 3; 4 5 6; 7 8 9];```或者使用内置函数`magic`:```matlabmyMatrix = magic(3);```2. 矩阵运算给定两个矩阵A和B,其中A = [2 3; 4 5],B = [6 7; 8 9],计算A+B的结果。
答案:在MATLAB中,可以使用加号`+`来计算两个矩阵的和:```matlabA = [2 3; 4 5];B = [6 7; 8 9];C = A + B;```计算结果C为:```matlabC = [8 10; 12 14];```3. 向量操作创建一个从0到1的等差数列,步长为0.1。
答案:在MATLAB中,可以使用`linspace`函数或`:`操作符来创建等差数列:```matlabv = 0:0.1:1;```或者使用`linspace`函数:```matlabv = linspace(0, 1, 11);```两种方法都将得到一个包含11个元素的向量,从0开始,到1结束,步长为0.1。
4. 条件语句编写一个MATLAB脚本,判断一个给定的数n是否为素数。
答案:可以通过以下MATLAB脚本来判断一个数n是否为素数:```matlabfunction isPrime = isPrimeNumber(n)if n <= 1isPrime = false;elsefor i = 2:sqrt(n)if mod(n, i) == 0isPrime = false;return;endendisPrime = true;endend```调用此函数时,传入一个数值n,函数将返回一个布尔值,表示n 是否为素数。
matlab练习程序(均匀B样条)
matlab练习程序(均匀B样条)B样条是对的⼀种扩展,包含两个贝塞尔曲线不具有的优点:1. B样条的多项式次数可以独⽴于控制点数⽬,⽽贝塞尔曲线次数和控制点是紧密相关的。
2. B样条允许局部控制曲线或曲⾯⽣成。
B样条曲线⽣成的关键是构造出基函数,下⾯提供了⼆次、三次和四次三种基函数来进⾏B样条曲线⽣成。
matlab代码如下:clear all;close all;clc;p =ginput(); %⾄少点五个点,因为下⾯有四次样条plot(p(:,1),p(:,2),'k-o');%⼆次均匀b样条re2=[];for i=1:length(p)-2for t=0:0.01:1b0 = 1/2*(1-t)^2;b1 = 1/2*(-2*t^2+2*t+1);b2 = 1/2*t^2;x=b0*p(i,1)+b1*p(i+1,1)+b2*p(i+2,1);y=b0*p(i,2)+b1*p(i+1,2)+b2*p(i+2,2);re2=[re2;x y];endend%三次均匀b样条re3=[];for i=1:length(p)-3for t=0:0.01:1b0=1/6*(1-t)^3;b1=1/6*(3.*t^3-6*t^2+4);b2=1/6*(-3*t^3+3*t^2+3*t+1);b3=1/6*t^3;x=b0*p(i,1)+b1*p(i+1,1)+b2*p(i+2,1)+b3*p(i+3,1);y=b0*p(i,2)+b1*p(i+1,2)+b2*p(i+2,2)+b3*p(i+3,2);re3=[re3;x y];endend%四次均匀b样条re4=[];for i=1:length(p)-4for t=0:0.01:1b0=1/24*(t^4-4*t^3+6*t^2-4*t+1);b1=1/24*(-4*t^4+12*t^3-6*t^2-12*t+11);b2=1/24*(6*t^4-12*t^3-6*t^2+12*t+11);b3=1/24*(-4*t^4+4*t^3+6*t^2+4*t+1);b4=1/24*t^4;x=b0*p(i,1)+b1*p(i+1,1)+b2*p(i+2,1)+b3*p(i+3,1)+b4*p(i+4,1);y=b0*p(i,2)+b1*p(i+1,2)+b2*p(i+2,2)+b3*p(i+3,2)+b4*p(i+4,2);re4=[re4;x y];endendhold on;plot(re2(:,1),re2(:,2),'r');plot(re3(:,1),re3(:,2),'g');plot(re4(:,1),re4(:,2),'b');结果如下:其中⿊⾊为控制点,红⾊为⼆次样条,绿⾊为三次样条,蓝⾊为四次样条。
matlab期末作业_附源代码
clc f=[-11,-9]'; A=[6,5;10,20]; B=[60,150]; Ae=[]; Be=[]; xm=[0,0]; xM=[8,Inf]; [x,f_opt]=linprog(f,A,B,Ae,Be,xm,xM)
6
③结果如下:
Optimization terminated. x= 8.0000 2.4000 f_opt = -109.6000
⑤结果分析: 生产甲800箱,生产乙240箱,获利最多为109.6万元。 显然应该是要改变生产计划的,改变计划获利增加。
7
②编写 m 文件
function y = myodefun(t,x ) y=[-x(1)^3-x(2);x(1)-x(2)^3]; end
0<t<30
③在 command 窗口中输入:
>> tspan=[0,30]; >> x0=[1;0.5]; >> [t,x]=ode45('myodefun',tspan,x0); >> plot(t,x(:,1),'g*',t,x(:,2),'b-.');
②Matlab源代码
clc f=[-10,-9]'; A=[6,5;10,20]; B=[60,150]; Ae=[]; Be=[]; xm=[0,0]; xM=[8,Inf]; [x,f_opt]=linprog(f,A,B,Ae,Be,xm,xM)
③结果如下:
Optimization terminated. x= 6.4286 4.2857 f_opt = -102.8571
1
1.求解微分方程组,画出解函数图。
MATLAB部分课后习题代码
习题1.6.2 第5题clearclcA=[1 4 7 10;2 5 8 11;3 6 9 12]B=flipud(A') %将A左旋90度C=fliplr(A') %将A右旋90度习题2.6 第6题clearclcx=input('输入10个两位整数')b=mean(x);for i=1:10if x(i) < b & rem(x(i),2)~=0x(i)endend习题2.6 第7题clearclcx=input('请输入一个正整数')for i=2:xif rem(x,i)==0breakendendif i < x & i > 1disp('不是素数')elsedisp('是素数')end3.4.2 自己练第6题clearclcx=-3:0.01:3;y=exp(-x.^2);plot(x,y)3.4.2 自己练第8题clearclcx=-2:0.1:2;y=-1:0.05:1;[x,y]=meshgrid(x,y);z=sqrt(5-x.^3/3-y.^2/7);surf(x,y,z)grid on3.5习题第1题(1)clearclcx=-1:0.01:1;y=log((1-x)./(1+x));plot(x,y)(2)clearclcx=-pi/2:pi/100:pi/2;y=sqrt(cos(x));plot(x,y)(3)clearclcx=-1:0.03:1;y=sin(1./x);plot(x,y)(4)clearclcx=-0.5:0.01:0.5;y=sin(x)./x;plot(x,y)3.5习题第2题clearclcx=-2*pi:pi/100:2*pi;y1=x;y2=x.^2;y3=-y2;y4=x.*sin(x);plot(x,y1,x,y2,x,y3,x,y4)3.5习题第3题clearclcx1=-10:0.01:1;x2=1:0.01:4;x3=4:0.01:10;y1=x1;y2=(x2).^2;y3=exp(x3);plot(x1,y1,x2,y2,x3,y3)3.5习题第4题clearclct=-2*pi:pi/1000:2*pi;y1=cos(t).^3-1;y2=sin(2*t)/2;y3=2*t.^2+1;subplot(131);polar(t,y1);title('cos(t)^3 - 1'); subplot(132);polar(t,y2);title('cos(t)sin(t)'); subplot(133);polar(t,y3);title('2t^2 + 1');3.5习题第5题clearclct=0:0.05:3*pi;a=3;b=1;n=2;r=a*sin(b+n*t);polar(t,r)3.5习题第6题clearclcx=-2*pi:pi/100:2*pi;y=sin(1./x);subplot(121);plot(x,y,'r')subplot(122);fplot('sin(1./x)',2*pi*[-1 1])3.5习题第7 (1)题clearclct=0:0.1:2*pi;x=sin(t);y=cos(t);[x,y]=meshgrid(x,y);z=x.^2/4 + y.^2/9;meshc(x,y,z);3.5习题第7 (2)题clearclcx=0:0.45:10;y=0:0.45:10;[x,y]=meshgrid(x,y);z=x.* y;meshc(x,y,z)view(-154,12)3.5习题第7 (3)题clearclcx=-5:0.05:5;y=-5:0.05:5;[x,y]=meshgrid(x,y);z=sin(x.*y);meshc(x,y,z)view(-60,50)3.5习题第8 题clearclcx=-5:0.2:5;y=-5:0.2:5;[x,y]=meshgrid(x,y);z=(1/(2*pi))*exp((-1/2)*(x.^2+y.^2)); meshc(x,y,z)3.5习题第9 题clearclcx=-1.5*pi:pi/100:1.5*pi;y1=2*exp(-0.5*x);y2=sin(2*pi*x);plot(x,y1,'r')hold onplot(x,y2,'b')3.5习题第10题clearclcx=-2:0.01:2;y=-1:0.01:1;[x,y]=meshgrid(x,y);z=y./(1+x.^2+y.^2);mesh(x,y,z)view(-96,16)第五章部分课件5.1 数据处理和分析5.1.2 最大值和最小值MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min,两个函数的调用格式和操作过程类似。
matlab考试题B卷及答案
matlab考试题B卷及答案1. MATLAB基础操作题:请在MATLAB中创建一个名为`myVector`的向量,包含元素1, 2, 3, 4, 5,并计算其元素之和。
答案:首先,创建向量`myVector`可以使用以下代码:```matlabmyVector = [1 2 3 4 5];```然后,计算元素之和可以使用`sum`函数:```matlabsumOfElements = sum(myVector);```最终,`sumOfElements`的值将为15。
2. MATLAB矩阵运算题:给定一个3x3的矩阵A,其元素为A=[1 2 3;4 5 6; 7 8 9],请计算矩阵A的转置。
答案:计算矩阵A的转置可以使用`transpose`函数或者简单的`.'`操作符。
以下是使用`transpose`函数的代码:```matlabA = [1 2 3; 4 5 6; 7 8 9];A_transpose = transpose(A);```或者使用`.'`操作符:```matlabA_transpose = A.';```得到的转置矩阵`A_transpose`将是:```1 4 72 5 83 6 9```3. MATLAB编程题:编写一个MATLAB函数,该函数接受一个整数n作为输入,并返回一个n阶的魔方矩阵。
答案:魔方矩阵是一个方阵,其中每一行、每一列以及两条对角线上的元素之和都相等。
以下是一个生成n阶魔方矩阵的MATLAB函数:```matlabfunction magicMatrix = createMagicSquare(n)if mod(n, 2) == 0error('n must be an odd number.');endmagicMatrix = zeros(n);num = 1;for i = 1:nfor j = 1:nif i == 1j = j;elsej = (j + 2 * (i - 1) - n) % n + 1;endmagicMatrix(i, j) = num;num = num + 1;endendend```调用此函数并传入一个奇数n,例如`createMagicSquare(3)`,将返回一个3阶魔方矩阵。
matlab作业练习及答案(有程序和截图)
1. 给出如下方程组:16323313915111081697612534141543s u p w s u p w s u p w s u p w +++=+++=+++=+++=求s ,u ,p ,w 的值,并求出系数行列式。
[答案:s =-0.1258,u =-8.7133,p =11.2875,w =-0.0500。
行列式=7680。
]>> A=[16 32 33 13;5 11 10 8;9 7 6 12;34 14 15 1];>> B=[91 16 5 43]';>> C=A\B2. 求矩阵H1()H X X X X -''=其中1731565419289121110X ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦〔答案:H =〔0.7294,0.9041,0.4477,0.9188〕'〕>> X=[17 31 5;6 5 4;19 28 9;12 11 10]; >> H=X/(X'*X)*X'>> X=[17 31 5;6 5 4;19 28 9;12 11 10]; >> H=X*inv((X'*X))*X'3.用MA TLAB语言实现下面的分段函数,()/,||,h x Dy f x h Dx x Dh x D>⎧⎪==≤⎨⎪-<-⎩。
y=h*(x>D)+h/D*x.x>=-D&x<=D)-h*(x<-D)4.636263 0S=2124822 ii==++++++∑①试不采用循环的形式,用数值方法求出上式的解。
②由于数值方法采用double形式进行计算,难以保证有效数字,试采用符号运算的方法求该式的精确解。
并给出保留16位有效数字的结果。
>> sum(2.^[1:63])>> sum(sym(2).^[1:63])5.编写一个矩阵相加函数mat_add(),使其具体的调用格式为,要求该函数能接受任意多个矩阵进行加法运算。
Matlab上机题代码及结果4题
例1下图描述了六个城市之间的航空航线图,其中1、2、......、6表示六个城市,带箭头线段表示两个城市之间的航线。
用MATLAB软件完成以下操作:(1)构造该图的邻接矩阵A;(2)若某人连续乘坐五次航班,那么他从哪一个城市出发到达哪一个城市的方法最多?(3)若某人可以乘坐一次、二次、三次或四次航班,那么他从哪一个城市出发总是不能达到哪一个城市?航空航线图(六城市)解:(1)构造邻接矩阵;(2)计算矩阵可达矩阵,找出该矩阵的最大元素,并确定它所在的位置;(3)计算可达矩阵,找出该矩阵中零元素的位置。
在MATLAB软件的M编辑器中编写m文件:% 图与矩阵clearA=[0,1,0,0,0,1;0,0,1,1,0,0;0,0,0,1,1,0;0,1,0,0,0,0;1,0,1,0,0,0;0,1,0,0,1,0]; % 构造邻接矩阵B=A^5;C=A+A^2+A^3+A^4;disp('邻接矩阵A为:');disp(A);disp('矩阵A^5为:');disp(B);m=max(max(B)); % 计算矩阵B的最大值[m_i,m_j]=find(B==m); % 寻找矩阵B中元素等于m的位置fprintf('矩阵A^5最大值%d的位置在:\n',m);disp([m_i,m_j]);disp('矩阵A+A^2+A^3+A^4为:');disp(C);[z_i,z_j]=find(C==0); % 寻找矩阵C中零元素的位置disp('矩阵A+A^2+A^3+A^4零元素的位置在:');disp([z_i,z_j]);在MATLAB命令窗口中输入m文件名称,计算结果为:邻接矩阵A为:0 1 0 0 0 10 0 1 1 0 00 0 0 1 1 00 1 0 0 0 01 0 1 0 0 00 1 0 0 1 0矩阵A^5为:2 5 5 53 12 4 43 2 02 3 5 5 2 10 2 1 3 2 12 6 4 5 4 11 4 4 7 4 2矩阵A^5最大值7的位置在:6 4矩阵A+A^2+A^3+A^4为:2 6 5 6 4 21 4 4 6 3 12 5 4 5 4 11 3 3 3 1 03 5 6 64 23 6 6 54 1矩阵A+A^2+A^3+A^4零元素的位置在:4 6从计算结果中可以看出,矩阵A^5最大值出现在矩阵的第六行第四列,说明:这个人如果从城市6出发连续乘坐五次航班后到达城市4,他可以选择的乘机路线最多,共有7种不同的方法。
matlab练习程序(差分法解二维波动方程)
matlab练习程序(差分法解⼆维波动⽅程)实现了⼀维波动⽅程数值解,这⼀篇实现⼆维波动⽅程数值解。
⼆维波动⽅程如下:写成差分形式:整理⼀下就能得到u(i+1,j,k)。
matlab代码如下:clear all;close all;clc;t = 3; %时间范围,计算到3秒x = 1;y = 1; %空间范围,0-1⽶m = 320; %时间t⽅向分320个格⼦n = 32; %空间x⽅向分32个格⼦k = 32; %空间y⽅向分32个格⼦ht = t/(m-1); %时间步长dthx = x/(n-1); %空间步长dxhy = y/(k-1); %空间步长dyu = zeros(m,n,k);%设置边界[x,y] = meshgrid(0:hx:1,0:hy:1);u(1,:,:) = sin(4*pi*x)+cos(4*pi*y);u(2,:,:) = sin(4*pi*x)+cos(4*pi*y);%按照公式进⾏差分for ii=2:m-1for jj=2:n-1for kk=2:k-1u(ii+1,jj,kk) = ht^2*(u(ii,jj+1,kk)+u(ii,jj-1,kk)-2*u(ii,jj,kk))/hx^2 + ...ht^2*(u(ii,jj,kk+1)+u(ii,jj,kk-1)-2*u(ii,jj,kk))/hy^2 + 2*u(ii,jj,kk) - u(ii-1,jj,kk);endendendfor i=1:320figure(1);mesh(x,y,reshape(u(i,:,:),[n k]));axis([0101 -44]);% F=getframe(gcf);% I=frame2im(F);% [I,map]=rgb2ind(I,256);% if i == 1% imwrite(I,map,'test.gif','gif','Loopcount',inf,'DelayTime',0.03);% else% imwrite(I,map,'test.gif','gif','WriteMode','append','DelayTime',0.03);% endend结果如下:这个看着就挺像波动的。
matlab练习程序(常微分方程组向量场)
matlab练习程序(常微分⽅程组向量场)过去有画过,通过向量场能够很形象的看出⽅程解的状态。
最近过节在家刷视频刷到了介绍微分⽅程的。
视频中对钟摆建⽴的微分⽅程组通过向量场的形式也很形象的表达了系统状态。
这⾥⽤matlab也实现⼀下,同时对三维情况也做了⼀个实现。
绘制的⽅法就是计算⽅程在⼆维或三维某个点的⽅向,然后把⽅向归⼀化,画出归⼀化的向量即可。
⼆维微分⽅程组如下:三维微分⽅程组如下:matlab代码如下:⼆维情况:clear all;close all;clc;mu = 0.1;gdl = 1;x = -2:0.4:16;y = -5:0.4:5;[x,y] = meshgrid(x,y);dx = y;dy= -mu*y-gdl*sin(x);d = sqrt(dx.^2+dy.^2);dx = dx./d;dy = dy./d;quiver(x,y,dx,dy);hold on;[t,h] = ode45(@test,[0100],[0.013]);plot(h(:,1),h(:,2),'r')[t,h] = ode45(@test,[0100],[0.012]);plot(h(:,1),h(:,2),'g')grid on;axis equal;test.m:function dy=test(t,x)mu = 0.1;gdl = 1;dy=[x(2);-mu*x(2)-gdl*sin(x(1))];结果:红⾊和绿⾊的线为⽅程组的两个特解。
三维情况:clear all;close all;clc;a = 16;b = 4;c = 45;x = -40:6:40;y =-40:6:40;z = 0:6:80;[x,y,z] = meshgrid(x,y,z);dx = a*(y-x);dy = c*x - x.*z-y;dz = x.*y-b*z;d = sqrt(dx.^2+dy.^2+dz.^2);dx = dx./d;dy = dy./d;dz = dz./d;quiver3(x,y,z,dx,dy,dz);hold on;[t,h] = ode45(@test2,[030],[1240]);plot3(h(:,1),h(:,2),h(:,3));grid on;axis equal;test2.m:function dy=test2(t,y)a = 16;b = 4;c = 45;dy=[a*(y(2)-y(1));c*y(1)-y(1)*y(3)-y(2);y(1)*y(2)-b*y(3)];结果:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB 练习实验一常见分布的概率密度、分布函数生成[实验目的]1. 会利用MATLAB软件计算离散型随机变量的概率,连续型随机变量概率密度值。
2.会利用MATLAB软件计算分布函数值,或计算形如事件。
3.会求上分位点以及分布函数的反函数值。
[实验要求]1.掌握常见分布的分布律和概率密度的产生命令,如binopdf,normpdf2. 掌握常见分布的分布函数命令,如binocdf,normcdf3. 掌握常见分布的分布函数反函数命令,如binoinv,norminv[实验内容]1 事件A在每次试验中发生的概率是0.3,计算(1)在10次试验中A恰好发生6次的概率;(2)在10次试验中A至多发生6次的概率.binopdf(6,10,0.3)>> binocdf(6,10,0.3)2设随机变量X服从参数是3的泊松分布,求概率poisspdf(6,3)3设随机变量X服从区间[2,6]上的均匀分布,求(1)X=4时的概率密度值;(2).unifpdf(4,2,6)>> unifcdf(5,2,6)4设随机变量X服从参数是6的指数分布,求(1)X=0,1,2,3,4,5,6时的概率密度值;(2).exppdf(0:6,6)>> expcdf(5,6)5设随机变量X服从均值是6,标准差是2的正态分布,求(1) X=3,4,5,6,7,8,9时的概率密度值;(2)X=3,4,5,6,7,8,9时的分布函数值;(3)若=0.345,求x;(4)求标准正态分布的上0.05分位数。
normpdf(3:9,6,2)normcdf(3:9,6,2)norminv(0.345,6,2)norminv(0.95,0,1)6设随机变量X服从自由度是6的t分布,求(1)X=-3,-2,-1,0,1,2,3时的概率密度值; (2)X=-3,-2,-1,0,1,2,3时分布函数值; (3)若=0.345,求x;(4)求t分布的上0.05分位数.tpdf(-3:3,6)tcdf(-3:3,6)tinv(0.345,6)tinv(0.95,6)7设随机变量X服从自由度是6的2χ分布,求(1) X=0,1,2,3,4,5,6时的概率密度值;(2) X=0,1,2,3,4,5,6时的分布函数值;(3) 若=0.345,求x;(4) 求2χ分布的上0.05分位数.chi2pdf(0:6,6)chi2cdf(0:6,6)chi2inv(0.345,6)chi2inv(0.95,6)8设随机变量X服从第一自由度是2,第,二自由度是6的F分布,求(1) X=0,1,2,3,4,5,6时的概率密度值;(2) X=0,1,2,3,4,5,6时的分布函数值;(3) 若=0.345,求x;(4) 求F分布的上0.05分位数.fpdf(0:6,2,6)fcdf(0:6,2,6)finv(0.345,2,6)finv(0.95,2,6)实验二概率作图[实验目的]1.熟练掌握MATLAB软件的关于概率分布作图的基本操作2.会进行常用的概率密度函数和分布函数的作图3.会画出分布律图形1.掌握MATLAB画图命令plot2.掌握常见分布的概率密度图像和分布函数图像的画法[实验内容]9事件A在每次试验中发生的概率是0.3,记10次试验中A发生的次数为X.(1)画出X的分布律图形;x=0:10;>> y=binopdf(x,10,0.3);>> plot(x,y,'.')>>(2)画出X的分布函数图形;x=0:0.01:10;>> y=binocdf(x,10,0.3);>> plot(x,y)10设随机变量X服从参数是6的指数分布,(1)画出X的概率密度图形x=0:0.01:10;>> y=exppdf(x,6);>> plot(x,y)(2)画出X的分布函数图形x=-1:0.01:10;>> y=expcdf(x,6);>> plot(x,y)11设随机变量X服从参数是3的泊松分布。
(1)画出X的分布律图形;x=0:10;>> y=poisspdf(x,3);>> plot(x,y,'.')(2)画出X的分布函数图形;>> x=0:0.01:10;>> y=poisscdf(x,3);>> plot(x,y)12 设随机变量X服从区间[2,6]上的均匀分布。
(1)画出X的概率密度图形x=0:0.01:10;>> y=unifpdf(x,2,6);>> plot(x,y,'*')(2)画出X的分布函数图形>> x=0:0.01:10;>> y=unifcdf(x,2,6);13设随机变量X服从均值是6,标准差是2的正态分布。
(1)画出X的概率密度图形x=-10:0.01:10;>> y=normpdf(x,6,2);>> plot(x,y)(2)画出X的分布函数图形> x=-10:0.01:10;>> y=normcdf(x,6,2);>> plot(x,y)(3)在同一个坐标系中画出均值是6,标准差是1,,3的正态分布概率密度图形x=0:0.01:13;>> y1=normpdf(x,6,1);>> y2=normpdf(x,6,2);>> y3=normpdf(x,6,3);>> plot(x,y1,x,y2,x,y3)14设随机变量X服从自由度是6的t分布(1)画出X的概率密度图形x=-10:0.01:10;>> y=tpdf(x,6);>> plot(x,y)(2)画出X的分布函数图形x=-10:0.01:10;>> y=tcdf(x,6);>> plot(x,y)15设随机变量X服从自由度是6的2 分布(1)画出X的概率密度图形x=0:0.01:10;>> y=chi2pdf(x,6);>> plot(x,y)(2)画出X的分布函数图形x=0:0.01:10;>> y=chi2cdf(x,6);>> plot(x,y)16设随机变量X服从第一自由度是2,第,二自由度是6的F分布(1)画出X的概率密度图形x=0:0.001:10;>> y=fpdf(x,2,6);>> plot(x,y)(2)画出X的分布函数图形x=0:0.001:10;>> y=fcdf(x,2,6);实验三数字特征[实验目的]1 加深对数学期望,方差的理解2理解数学期望,方差的意义,以及具体的应用3 加深对协方差,相关系数的理解4 了解协方差,相关系数的具体的应用[实验要求]1 概率与频率的理论知识,MATLAB软件2 协方差,相关系数的理论知识,MATLAB命令cov,corrcoef[实验内容]17若~B(20,0.3), 求E(X),D(X).[M,,V]=binostat(20,0.3)18随机变量X的概率密度为,求E(X),D(X).Syms Xf1=x;f2=2-x;Ex=int(xf1,0,1)+int(xf2,1,2);Ex2=int(x^2f1,0,1)+int(x^2f2,1,2);Dx=Ex2-Ex^219设(X,Y)的概率密度为, 求EX,EY.Syms x yfxy=8xy;Ex=int(int(fxyx,y,0,x),x,0,1)Ey=int(int(fxyy,y,0,x),x,0,1)20(续19)求cov(X,Y)Syms x yfxy=8xy;Ex=;Ey=;Cxy=int(int(fxy(x-Ex)(y-Ey),y,0,x),x,0,1)21 某种商品每件表面上的疵点数X服从泊松分布,平均每件上有0.8个疵点。
若规定表面不超过一个疵点的为一等品,价值10元,表面疵点数大于一个不多于4个的为二等品,价值8元。
表面疵点数多于4个则为废品,求产品价值的均值。
解设X表示产品表面上的疵点数,由已知,EX=0.8,且X服从泊松分布,故EX=0.8, =设Y表示产品价值,则Y有分布律:==0.8088=0.1898=0.0014故有EY=0(元)> pro=[ ];>> price=[0 10 8];>> pro(2)=poisscdf(1,0.8);>> pro(3)=poisscdf(4,0.8)-pro(2);>> pro(1)=1-pro(2)-pro(3)>> Ey=pro*price'22 设随机变量X~N(1,9),Y~N(0,16) ,且X与Y的相关系数为,令Z=X/3+Y/2.求(1)E(Z) ,D(Z) ;(2) 求X 与Z的相关系数。
解根据题意,有E(X)=1,D(X)=9,E(y)=0 ,D(y)=16由E(Z)=E(X/3)+E(y/2)=E(X)/3+E(Y)/2得E(Z)=1/3+0=1/3由,cov(X,Y)= 有Cov(X,Y)=0.5=6D(Z)=D(X/3+Y/2)=D(X/3)+D(Y/2)+2cov(X/3,Y/2)得到D(Z)=D(X)/9+D(Y)/4+2cov((X,Y)=9/9+16/4+2=3得cov(X,Z)=cov(X,X/3)+cov(X,Y/2)=1/3cov(X,X)+1/2cov(X,Y)=9/3+(-6)=0[Ex,Dx]=normstat(1,sqrt(9));>> [Ey,Dy]=normstat(0,sqrt(16));>> rxy=-0.5;>> syms x y z>> z=x/3+y/2;>> covxy=rxy*sqrt(Dx)*sqrt(Dy);>> Ez=Ex/3+Ey/2>> Dz=Dx/9+Dy/4+2*1/3*1/2*(covxy)>> covxz=Dx/3+covxy/2实验四统计中的样本数字特征23随机生成4组10个整数数据,求每组数据的平均值。
> X=fix(20*rand(10,4))>> M=mean(X)24 随机生成服从标准正态分布的6组10个数据,求每组数据的极差、样本方差、样本标准差。
X=normrnd(0,1,10,6)M1=range(X)M2=var(X)M3=std(X)实验五两个正态总体均值差,方差比的区间估计[实验目的]1掌握两个正态总体均值差,方差比的区间估计方法2会用MATLAB求两个正态总体均值差,方差比的区间估计[实验要求]两个正态总体的区间估计理论知识[实验内容]25 为比较甲乙两种型号步枪子弹的枪口速度,随机地取甲种型号子弹10发,得到枪口速度的平均值为500(m/s ),标准差1.10(m/s );乙种型号子弹20发,得到枪口速度的平均值为496(m/s ),标准差1.20(m/s )。