matlab7.0x课后习题答案
Matlab课后习题解答
0.80
0.95
电阻y
15
18
19
21
22.6
23.8
26
>> x=[0.1,0.3,0.4,0.55,0.7,0.8,0.95];
y=[15,18,19,21,22.6,23.8,26];
p1=polyfit(x,y,1);
p3=polyfit(x,y,3);
p5=polyfit(x,y,5);
if x>=90
disp('优秀');
elseif x>=80
disp('良好');
elseif x>=60
disp('及格');
else
disp('不及格');
end
>> x=85
x =
85
良好
Q3:编写函数,计算
>> sum=0;
>> for i=1:50
a=1;
for j=1:i
a=a*j;
end
ans =
0
(4)
>> syms n
>> limit(sqrt(n+2)-2*sqrt(n+1)+sqrt(n),n,inf)
ans =
0
Q2:用MATLAB软件求下列函数极限:
(1)
>> syms x
>> limit((((1+x)^(1/3)-1)/x),x,0)
ans =
1/3
(4)
>> syms x
(2)
>> syms x
MATLAB课后习题集附标准答案
第2章MATLAB概论1、与其他计算机语言相比较,MA TLAB语言突出的特点是什么?答:起点高、人机界面适合科技人员、强大而简易的作图功能、智能化程度高、功能丰富,可扩展性强.2、MA TLAB系统由那些部分组成?答:开发环境、MATLAB数学函数库、MATLAB语言、图形功能、应用程序接口3、安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?答:在安装MATLAB时,安装内容由选择组件窗口中各复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装.第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可.4、MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?答:在MATLAB操作桌面上有五个窗口,在每个窗口的右下角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口称为独立的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面称为独立窗口,在独立窗口的view菜单中选择Dock,菜单项就可以将独立的窗口重新防止的桌面上.5、如何启动M文件编辑/调试器?答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动.在命令窗口中键入edit命令时也可以启动M文件编辑/调试器.6、存储在工作空间中的数组能编辑吗?如何操作?答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可.7、命令历史窗口除了可以观察前面键入的命令外,还有什么用途?答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中.8、如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?答:当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成.在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上.9、在MA TLAB中有几种获得帮助的途径?答:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器.(2)help命令:在命令窗口键入“help”命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息.(3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数.(4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数.注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息.第3章 MATLAB 数值运算3.1在MA TLAB 中如何建立矩阵⎥⎦⎤⎢⎣⎡194375,并将其赋予变量a ? 答:在Command Window 窗口输入操作:>> a=[5 7 3;4 9 1]3.2有几种建立矩阵的方法?各有什么优点? 答:(1)直接输入法,如a=[1 2 3 4],优点是输入方法方便简捷;(2)通过M 文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改; (3)由函数建立,如y=sin(x),可以由MATLAB 的内部函数建立一些特殊矩阵; (4)通过数据文件建立,该方法可以调用由其他软件产生数据.3.3在进行算术运算时,数组运算和矩阵运算各有什么要求?答:进行数组运算的两个数组必须有相同的尺寸.进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与b 相乘(a*b )时必须满足a 的列数等于b 的行数.渗釤呛俨匀谔鱉调硯錦。
matlab课后习题及答案
第一章 5题已知a=4.96,b=8.11,计算)ln(b a eba +-的值。
解:clear clc a=4.96; b=8.11;exp(a-b)/log(a+b) ans =0.0167 6题已知三角形的三边a=9.6,b=13.7, c=19.4,求三角形的面积。
提示:利用海伦公式area =))()((c s b s a s s ---计算,其中S=(A+B+C)/2. 解:clear clc a=9.6; b=13.7; c=19.4; s=(a+b+c)/2area=sqrt(s*(s-a)*(s-b)*(s-c)) s =21.3500 第二章 8题已知S=1+2+2^2+2^3+……+2^63,求S 的值 解:clear clc S=0;for i=0:1:63 S=S+2^i; end S S =1.8447e+019 9题分别用for 和while 循环结构编写程序,计算∑=-1001n 1n 2)(的值。
解:clear clc s=0;for n=1:100 s=s+(2*n-1); end s s =10000 clear clc n=1; s=0;while n<=100 s=s+(2*n-1); n=n+1; end s s =10000 第三章 2题在同一坐标下绘制函数x ,,2x-,2x xsin(x)在()∏∈,0x 的曲线。
解:clear clcx=0:0.2:pi; y1=x; y2=x.^2; y3=-(x.^2); y4=x.*sin(x);plot(x,y1,'-' ,x,y2,'-' ,x,y3,'-' ,x,y4,'-')0.511.522.53-10-8-6-4-202468109题用不同的线型和颜色在同一坐标内绘制曲线y1=2ex5.0 、y2=sin(2∏x )的图形。
MATLAB习题及参考答案经典.doc
习题:1, 计算⎥⎦⎤⎢⎣⎡=572396a 与⎥⎦⎤⎢⎣⎡=864142b 的数组乘积。
2, 对于B AX =,如果⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=753467294A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=282637B ,求解X 。
3, 已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。
4, 角度[]604530=x ,求x 的正弦、余弦、正切和余切。
(应用sin,cos,tan.cot)5, 将矩阵⎥⎦⎤⎢⎣⎡=7524a 、⎥⎦⎤⎢⎣⎡=3817b 和⎥⎦⎤⎢⎣⎡=2695c 组合成两个新矩阵: (1)组合成一个4⨯3的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵元素,第三列为按列顺序排列的c 矩阵元素,即 ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡237912685574(2)按照a 、b 、c 的列顺序组合成一个行矢量,即 []2965318772546, 将(x -6)(x -3)(x -8)展开为系数多项式的形式。
(应用poly,polyvalm)7, 求解多项式x 3-7x 2+2x +40的根。
(应用roots)8, 求解在x =8时多项式(x -1)(x -2) (x -3)(x -4)的值。
(应用poly,polyvalm)9, 计算多项式9514124234++--x x x x 的微分和积分。
(应用polyder,polyint ,poly2sym)10, 解方程组⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡66136221143092x 。
(应用x=a\b)11, 求欠定方程组⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡5865394742x 的最小范数解。
(应用pinv) 12, 矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=943457624a ,计算a 的行列式和逆矩阵。
(应用det,inv)13, y =sin(x ),x 从0到2π,∆x =0.02π,求y 的最大值、最小值、均值和标准差。
matlab课后习题答案 (附图)
习题2.1画出下列常见曲线的图形y (1)立方抛物线3x 命令:syms x y;ezplot('x.^(1/3)')(2)高斯曲线y=e^(-X^2);命令:clearsyms x y;ezplot('exp(-x*x)')(3)笛卡尔曲线命令:>> clear>> syms x y;>> a=1;>> ezplot(x^3+y^3-3*a*x*y)(4)蔓叶线命令:>> clear>> syms x y;>> a=1 ezplot(y^2-(x^3)/(a-x))(5)摆线:()()t b y t t a x cos 1,sin -=-=命令:>> clear>> t=0:0.1:2*pi;>> x=t-sin(t);>>y=2*(1-cos(t)); >> plot(x,y)7螺旋线命令:>> clear >> t=0:0.1:2*pi; >> x=cos(t); >> y=sin(t);>> z=t;>>plot3(x,y,z) (8)阿基米德螺线>> theta=0:0.1:2*pi;>> rho1=(theta);>> subplot(1,2,1),polar(theta,rho1)(9) 对数螺线命令:cleartheta=0:0.1:2*pi;rho1=exp(theta);subplot(1,2,1),polar(theta,rho1) (12)心形线>> theta=0:0.1:2*pi;>> rho1=1+cos(theta);>> subplot(1,2,1),polar(theta,rho1)练习2.21. 求出下列极限值(1)nn n n 3lim 3+∞→命令:>>syms n>>limit((n^3+3^n)^(1/n))ans =3(2))121(lim n n n n ++-+∞→命令:>>syms n>>limit((n+2)^(1/2)-2*(n+1)^(1/2)+n^(1/2),n,inf)ans =(3)x x x 2cot lim 0→命令:syms x ;>> limit(x*cot(2*x),x,0)ans =1/2(4))(cos lim c m xx ∞→ 命令:syms x m ;limit((cos(m/x))^x,x,inf)ans =1(5))111(lim 1--→e x x x 命令:syms x>> limit(1/x-1/(exp(x)-1),x,1)ans =(exp(1)-2)/(exp(1)-1)(6))(2lim x x x x -+∞→命令:syms x>> limit((x^2+x)^(1/2)-x,x,inf)ans =1/2练习2.41. 求下列不定积分,并用diff 验证:(1)⎰+xdx cos 1 >>Clear>> syms x y>> y=1/(1+cos(x));>> f=int(y,x)f =tan(1/2*x)>> y=tan(1/2*x);>> yx=diff(y,x);>> y1=simple(yx)y1 =1/2+1/2*tan(1/2*x)^2 (2)⎰+e x dx 1clearsyms x yy=1/(1+exp(x));f=int(y,x)f =-log(1+exp(x))+log(exp(x))syms x yy=-log(1+exp(x))+log(exp(x));yx=diff(y,x);y1=simple(yx)y1 =1/(1+exp(x))(3)dx x x ⎰sin 2syms x yy=x*sin(x)^2;>> f=int(y,x)f =x*(-1/2*cos(x)*sin(x)+1/2*x)-1/4*cos(x)^2-1/4*x^2clearsyms x y y=x*(-1/2*cos(x)*sin(x)+1/2*x)-1/4*cos(x)^2-1/4*x^2;yx=diff(y,x);>> y1=simple(yx)y1 =x*sin(x)^2(4) xdx ⎰sec 3syms x yy=sec(x)^3;f=int(y,x)f =1/2/cos(x)^2*sin(x)+1/2*log(sec(x)+tan(x))clearsyms x yy=1/2/cos(x)^2*sin(x)+1/2*log(sec(x)+tan(x));yx=diff(y,x);y1=simple(yx)y1 =1/cos(x)^32. 求下列积分的数值解1)dx x x ⎰-10clearsyms xy=int(x^(-x),x,0,1)y =int(x^(-x),x = 0 .. 1)vpa(y,10)ans =1.2912859972)xdx e x cos 3202⎰πclearsyms xy=int(exp(2*x)*cos(x)^3,x, clearsyms xy=int((1/(2*pi)^(1/2))*exp(-x^2/2),x,0,1)y =7186705221432913/36028797018963968*erf(1/2*2^(1/2))*2^(1/2)*pi^(1/0,2*pi) y =22/65*exp(pi)^4-22/65vpa(ans,10)(3) dx x e 210221-⎰π>> clear>> syms x>> y=int(1/(2*pi)^(1/2)*exp(-x^2/2),0,1);>> vpa(y,14)ans =.341344746068552(4)>> clear>> syms x>> y=int(x*log(x^4)*asin(1/x^2),1,3);Warning: Explicit integral could not be found.> In sym.int at 58>> vpa(y,14)ans =2.45977212823752(5)>> clear>> syms x>> y=int(1/(2*pi)^(1/2)*exp(-x^2/2),-inf,inf);>> vpa(y,14)ans =.99999999999999练习2.51判断下列级数的收敛性,若收敛,求出其收敛值。
matlab7.X课后习题
第二章第三题clc;clear;close alla=5-round(100*rand(50,2))/10 a =-4.5000 3.10002.7000 -1.8000-1.1000 2.00000.1000 -0.4000-3.9000 3.5000-2.6000 -2.00000.4000 1.20004.8000 -3.6000-3.2000 -3.50000.6000 -0.9000-1.2000 0-2.9000 -4.0000-4.2000 -3.2000-2.4000 -1.40003.2000 -3.20000.9000 -1.6000-4.4000 1.6000-4.2000 2.10000.9000 1.6000-3.9000 -0.30004.4000 -2.30001.5000 1.9000-3.1000 -3.40004.9000 -0.70003.6000 1.30003.0000 -2.00003.0000 -0.5000-1.0000 0.60002.3000 -1.90003.0000 -1.20004.8000 -2.9000-2.5000 -4.60000.5000 -0.2000-4.3000 -3.80000.3000 3.30000.8000 -4.8000-3.5000 2.3000-0.3000 2.50003.0000 -3.8000-1.7000 -2.4000-3.4000 3.60004.8000 4.9000-1.8000 -3.90001.2000 3.0000-3.3000 2.00000 -1.6000-2.1000 2.20000.7000 0.30002.0000 4.40003.1000 -4.9000第六题clc;clear;close alla=randn(10,10)b=find(-0.5<a<0.5);z=length(b)a =Columns 1 through 9-0.4326 -0.1867 0.2944 -0.3999 -1.6041 -1.0106 0.0000 0.5689 0.6232 -1.6656 0.7258 -1.3362 0.6900 0.2573 0.6145 -0.3179 -0.2556 0.7990 0.1253 -0.5883 0.7143 0.8156 -1.0565 0.5077 1.0950 -0.3775 0.9409 0.2877 2.1832 1.6236 0.7119 1.4151 1.6924 -1.8740 -0.2959 -0.9921 -1.1465 -0.1364 -0.6918 1.2902 -0.8051 0.5913 0.4282 -1.4751 0.2120 1.1909 0.1139 0.8580 0.6686 0.5287 -0.6436 0.8956 -0.2340 0.2379 1.1892 1.0668 1.2540 1.1908 0.2193 0.3803 0.7310 0.1184 -1.0078 -0.0376 0.0593 -1.5937 -1.2025 -0.9219 -1.0091 0.5779 0.3148 -0.7420 0.3273 -0.0956 -1.4410 -0.0198 -2.1707 -0.0195 0.0403 1.4435 1.0823 0.1746 -0.8323 0.5711 -0.1567 -0.0592 -0.0482 0.6771 -0.3510 -0.1315Column 100.38990.0880-0.6355-0.55960.4437-0.94990.78120.5690-0.8217-0.2656z =26第三章第五题clc;clear;close all x=-3:0.1:3;y1=2*x+5;y2=x.^2-3*x+1;figure(1)subplot(2,1,1);plot(x,y1),grid on axis([-3 3 -5 15 ]) subplot(2,1,2);plot(x,y2),grid on axis([-3 3 -5 15 ])第七题clc;clear;close all x=[190 33 45 42 45]; explode=[0 1 0 0 0]; figure(1)pie3(x,explode)title('三维饼图')第八题clc,clear,close all[x,y]=meshgrid(-3:.125:3);z=(x-2).^2+(y-1.2).^2;meshc(x,y,z);axis([-4 4 -4 4 0 30])title('z=(x-2).^2+(y-1.2).^2的网格曲线')第九题clc;clear;close all[x,y]=meshgrid(-5:.1:5);z=x.^2+y.^2+sin(x*y);figure(1)subplot(2,1,1)plot3(x,y,z),grid onsubplot(2,1,2)[C,h]=contour(x,y,z);set(h,'showtext','on','textstep',get(h,'levelstep')*2)第四章第三题clc;clear;close all i=0;for y=[1:1:2006]; while y>=10if rem(y,10)==0 i=i+1;endy=fix(y/10); endenddisp(i)504第五题clc;clear;close all i=1x1=[-3:0.01:3];for x=x1if x>=-3&x<-1y1(i)=(-x^2-4*x-3)/2;elseif x>=-1&x<1y1(i)=-x^2+1;elseif x>=1&x<=3y1(i)=(-x^2+4*x-3)/2;endi=i+1;endfigure(1)plot(x1,y1),grid on第八题clc;clear;close allnumber=input('input the profit\n');if number>40bonus=(number-40)*0.01+20*0.02+10*0.05+10*0.1; elseif number<=40&number>20bonus=(number-20)*0.02+10*0.05+10*0.1;elseif number<=20&number>10bonus=(number-10)*0.05+10*0.1;elsebonus=number*0.1;endData=sprintf('the bonus is %d',bonus); disp(Data);input the profit150000the bonus is 1.501500e+003第九题clc;clear;close allm=1;n=2;for i=1:1:15x(i)=n/m;k=n;n=m+n;m=k;endsum(x)ans =24.5701第五章第一题clc;clear;close alla1=[1 9 8;7 2 5;3 -2 7];b1=inv(a1)det(a1)a2=[1 0 -7 5;0 -26 7 2;7 4 3 5;8 -3 2 15];b2=inv(a2)det(a2)b1 =-0.0543 0.1787 -0.06560.0769 0.0385 -0.11540.0452 -0.0656 0.1380ans =-442b2 =0.1501 0.0654 0.3046 -0.1603-0.0509 -0.0471 -0.0312 0.0336-0.1697 -0.0204 -0.0703 0.0827-0.0676 -0.0416 -0.1593 0.1478ans =-9334第二题clc;clear;close alla1=[1 2 3;2 2 5;3 5 1];b1=[11 12 31]';x1=a1\b1a2=[3 1 0 5;0 6 7 3;0 4 3 0;2 -1 2 6]; b2=[2 4 7 8]';x2=a2\b2x1 =1.80005.2000-0.4000x2 =28.1892-9.459514.9459-14.6216第八题clc;clear;close allp1=[1 -2 -3 4 2];r1=roots(p1)p2=[1 -7 5 31 -30];r2=roots(p2)p3=[1 -1 -25 25];r3=roots(p3)p4=[-2 3 1 5 8 0];r4=roots(p4)r1 =2.41421.4142-1.4142-0.4142r2 =5.0000-2.00003.00001.0000r3 =-5.00005.00001.0000r4 =2.41760.0148 + 1.3215i0.0148 - 1.3215i-0.9473第九题clc;clear;close allp1=[1 -2 -3 4 2];y1=polyval(p1,[-1.5 2.1 3.5]) p2=[1 -7 5 31 -30];y2=polyval(p2,[-1.5 2.1 3.5]) p3=[1 -1 -25 25];y3=polyval(p3,[-1.5 2.1 3.5]) p4=[-2 3 1 5 8 0];y4=polyval(p4,[-1.5 2.1 3.5]) y1 =1.0625 -1.9039 43.5625y2 =-36.5625 11.7711 -10.3125y3 =56.8750 -22.6490 -31.8750y4 =26.2500 24.7733 -468.1250第十三题clc;clear;close alla1=rand(1,50);b1=max(a1)c1=min(a1)m1=mean(a1)s1=std(a1)^2a2=randn(1,50);b2=max(a2)c2=min(a2)m2=mean(a2)s2=std(a2)^2b1 =0.9901c1 =0.0150m1 =0.5246s1 =0.0646b2 =1.4885c2 =-2.2023m2 =-0.2348s2 =0.8153第十六题clc;clear;close allt=[-2:.1:2];x1=sin(50*t)+randn(size(t)); x2=cos(50*t)+randn(size(t)); x3=sin(50*t)+randn(size(t)); r1=corrcoef(x1,x2)r2=corrcoef(x1,x3)X1=randn(size(t));X2=randn(size(t));X3=randn(size(t));R1=corrcoef(X1,X2)R2=corrcoef(X1,X3)r1 =1.0000 -0.0274-0.0274 1.0000r2 =1.0000 0.33740.3374 1.0000R1 =1.0000 -0.0346-0.0346 1.0000R2 =1.0000 0.11180.1118 1.0000第六章第二题clc;clear;close allr=round(100*rand(7,5,10));r1=reshape(r(:,:,1),1,35);a1=mean(r1)r2=reshape(r(:,:,2),1,35);a2=mean(r2)r3=reshape(r(:,:,3),1,35);a3=mean(r3)r4=reshape(r(:,:,4),1,35);a4=mean(r4)r5=reshape(r(:,:,5),1,35);a5=mean(r5)r6=reshape(r(:,:,6),1,35);a6=mean(r6)r7=reshape(r(:,:,7),1,35);a7=mean(r7)r8=reshape(r(:,:,8),1,35);a8=mean(r8)r9=reshape(r(:,:,9),1,35);a9=mean(r9)r10=reshape(r(:,:,10),1,35);a10=mean(r10)A=[a1 a2 a3 a4 a5 a6 a7 a8 a9 a10] [B,A]=sort(A)a1 =54.1714 a2 =48a3 =52.4000 a4 =44.8286 a5 =53.2286 a6 =49.2571 a7 =50.7429 a8 =46.0571 a9 =46.1714 a10 =50.8286A =54.1714 48.0000 52.4000 44.8286 53.2286 49.2571 50.7429 46.0571 46.1714 50.8286B =44.8286 46.0571 46.1714 48.0000 49.2571 50.7429 50.8286 52.4000 53.2286 54.1714A =4 8 9 2 6 7 10 35 1第七章第二题clc;clear;close allx=[-1:.01:1];y=-2*x.^2+4;y1=-2*x.^2+4+sin(2*pi*x);figure(1)plot(x,y,x,y1),grid ontext(-0.3,4,'最大值\rightarrow')text(-1.0,4,'极大值\rightarrow')text(-0.6,2.8,'极小值\rightarrow')text(-0.1,4.8,'极大值\rightarrow')text(0.5,1.7,'极小值\rightarrow')第四题function word(y)i=1;while(any(y))[A(i).Name,y]=strtok(y);A(i).no=i;A(i).length=length(A(i).Name);A(i).value=sum([double(A(i).Name)]'); disp(A(i));i=i+1;endclc;clear;close all; y='I love MATLAB'; word(y);Name: 'I'no: 1length: 1value: 73Name: 'love' no: 2length: 4value: 438Name: 'MATLAB' no: 3length: 6value: 433。
(完整版)MATLAB)课后实验答案[1]
实验一 MATLAB 运算基础1.先求下列表达式的值,然后显示 MATLAB 工作空间的使用情 况并保存全部变量解:4.完成下列操作:(1) 求[100,999] 之间能被21整除的数的个数。
(1) z i 2sin 85° 1 e 2Z 2 卯(x L),其中x2 0.45 2i 5Z 3 0.3a 0.3a e e 2sin (a 0.3)3.0, 2.9,L ,2.9, 3.0 Z 4t 2t 2 t 2 1 2t 其中 t=0:0.5:2.5(2) 建立一个字符串向量,删除其中的大写字母。
解: (1)结果:m=100:999;n=fin d(mod(m,21)==0);len gth( n)ans =43(2).建立一个字符串向量例如:ch二'ABC123d4e56Fg9:则要求结果是: ch二'ABC123d4e56Fg9:k=fi nd(ch>='A'&ch<='Z'); ch(k)=[] ch =123d4e56g9 实验二MATLAB 矩阵分析与处理1.设有分块矩阵A E 3 3 °2 3 R 3 2S 2 2 ,其中E 、R 、0、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证A 2 E R RS 0 S 22 3 4 1 1 1 3 4 5 1 1 1 4 5 6 x , 0.95 x 2 0.67 x 3 0.52(1) 求方程的解。
(2) 将方程右边向量元素 b 3改为0.53再求解,并比较 b 3的变化和解的相对变化。
(3)计算系数矩阵A 的条件数并分析结论。
解:M 文件如下: 解:M 文件如下; 5.下面是一个线性方程组:实验三选择结构程序设计1. 求分段函数的值。
x2x 6 x 0且x 3y x2 5x 6 0 x 5且x 2 及x 3x2x 1 其他用if语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0 时的y值。
matlab习题及答案
matlab习题及答案Matlab习题及答案Matlab是一种强大的数学计算软件,被广泛应用于科学计算、数据分析和工程设计等领域。
在学习和使用Matlab的过程中,习题是一种非常有效的学习方式。
本文将给出一些常见的Matlab习题及其答案,帮助读者更好地掌握Matlab的使用技巧。
一、基础习题1. 计算1到100之间所有奇数的和。
解答:```matlabsum = 0;for i = 1:2:100sum = sum + i;enddisp(sum);```2. 编写一个函数,计算任意两个数的最大公约数。
解答:```matlabfunction gcd = computeGCD(a, b)while b ~= 0temp = b;a = temp;endgcd = a;end```3. 编写一个程序,生成一个5×5的随机矩阵,并计算矩阵的行和列的平均值。
解答:```matlabmatrix = rand(5);row_average = mean(matrix, 2);col_average = mean(matrix);disp(row_average);disp(col_average);```二、进阶习题1. 编写一个程序,实现插入排序算法。
解答:```matlabfunction sorted_array = insertionSort(array)n = length(array);for i = 2:nj = i - 1;while j > 0 && array(j) > keyarray(j+1) = array(j);j = j - 1;endarray(j+1) = key;endsorted_array = array;end```2. 编写一个程序,实现矩阵的转置。
解答:```matlabfunction transposed_matrix = transposeMatrix(matrix) [m, n] = size(matrix);transposed_matrix = zeros(n, m);for i = 1:mfor j = 1:ntransposed_matrix(j, i) = matrix(i, j);endendend```3. 编写一个程序,实现二分查找算法。
matlab教程习题答案
matlab教程习题答案MATLAB教程习题答案MATLAB是一种广泛应用于科学计算和工程领域的高级编程语言和环境。
它的强大功能和灵活性使得许多人对其感兴趣,但对于初学者来说,掌握MATLAB 可能会有一些困难。
为了帮助大家更好地理解和掌握MATLAB,下面将给出一些常见的MATLAB教程习题的答案,希望能对大家有所帮助。
1. 编写一个MATLAB程序,计算1到100之间所有偶数的和。
答案:```matlabsum = 0;for i = 2:2:100sum = sum + i;enddisp(sum);```2. 编写一个MATLAB程序,生成一个10行10列的随机矩阵,并计算该矩阵的行和列的和。
答案:```matlabmatrix = rand(10, 10);row_sum = sum(matrix, 2);col_sum = sum(matrix);disp(col_sum);```3. 编写一个MATLAB程序,计算斐波那契数列的前20个数。
答案:```matlabfibonacci = zeros(1, 20);fibonacci(1) = 1;fibonacci(2) = 1;for i = 3:20fibonacci(i) = fibonacci(i-1) + fibonacci(i-2);enddisp(fibonacci);```4. 编写一个MATLAB程序,计算一个正整数的阶乘。
答案:```matlabnum = input('请输入一个正整数:');factorial = 1;for i = 1:numfactorial = factorial * i;end```5. 编写一个MATLAB程序,求解一个二次方程的根。
假设二次方程的形式为ax^2 + bx + c = 0,其中a、b、c为用户输入的系数。
答案:```matlaba = input('请输入二次方程的系数a:');b = input('请输入二次方程的系数b:');c = input('请输入二次方程的系数c:');delta = b^2 - 4*a*c;if delta < 0disp('该二次方程无实根。
matlab教材习题答案
matlab教材习题答案Matlab是一种广泛应用于科学与工程领域的计算机编程语言和环境。
它具备强大的数值计算和数据可视化功能,被广泛用于数据分析、信号处理、图像处理、机器学习等领域。
对于初学者而言,掌握Matlab的基本语法和常用函数是非常重要的,而教材习题则是帮助学生巩固所学知识的重要资源。
本文将为大家提供一些Matlab教材习题的参考答案,以帮助读者更好地学习和应用Matlab。
1. 基本语法练习题1.1 计算并输出1到10的平方for i = 1:10fprintf('%d的平方是:%d\n', i, i^2);end1.2 计算并输出1到10的阶乘for i = 1:10fact = 1;for j = 1:ifact = fact * j;endfprintf('%d的阶乘是:%d\n', i, fact);end2. 数值计算练习题2.1 求解一元二次方程的根a = 1;b = -3;c = 2;delta = b^2 - 4*a*c;x1 = (-b + sqrt(delta))/(2*a);x2 = (-b - sqrt(delta))/(2*a);fprintf('一元二次方程的根为:%f, %f\n', x1, x2);2.2 求解线性方程组的解A = [1 2; 3 4];B = [5; 6];X = inv(A) * B;fprintf('线性方程组的解为:%f, %f\n', X(1), X(2));3. 数据处理练习题3.1 统计一个数组中的最大值、最小值和平均值data = [1, 2, 3, 4, 5];max_value = max(data);min_value = min(data);average_value = mean(data);fprintf('最大值:%f\n最小值:%f\n平均值:%f\n', max_value, min_value, average_value);3.2 对一个矩阵进行排序matrix = [4 2 3; 1 5 6; 9 8 7];sorted_matrix = sort(matrix);fprintf('排序后的矩阵为:\n');disp(sorted_matrix);4. 图像处理练习题4.1 读取并显示一张图片image = imread('image.jpg');imshow(image);4.2 对一张图片进行灰度化处理gray_image = rgb2gray(image);imshow(gray_image);5. 信号处理练习题5.1 生成并绘制正弦信号t = 0:0.01:2*pi;x = sin(t);plot(t, x);5.2 对一段音频信号进行傅里叶变换[y, fs] = audioread('audio.wav');Y = fft(y);plot(abs(Y));通过以上几个例子,我们可以看到Matlab的强大功能和灵活性。
matlab课后答案完整版
matlab课后答案完整版ones表⽰1矩阵zeros表⽰0矩阵ones(4)表⽰4x4的1矩阵zeros(4)表⽰4x4的0矩阵zeros(4,5)表⽰4x5的矩阵eye(10,10)表⽰10x10的单位矩阵rand(4,5)表⽰4x5的伴随矩阵det(a)表⽰计算a的⾏列式inv(a)表⽰计算a的逆矩阵Jordan(a)表⽰求a矩阵的约当标准块rank(a)表⽰求矩阵a的秩[v,d]=eig(a)对⾓矩阵b=a’表⽰求a矩阵的转置矩阵sqrt表⽰求平⽅根exp表⽰⾃然指数函数log⾃然对数函数abs绝对值第⼀章⼀、5(1)b=[97 67 34 10;-78 75 65 5;32 5 -23 -59]; >> c=[97 67;-78 75;32 5;0 -12]; >> d=[65 5;-23 -59;54 7];>> e=b*ce =5271 11574-11336 6641978 3112(2)a=50:1:100⼆、1 、x=-74;y=-27;z=(sin(x.^2+y.^2))/(sqrt(tan(abs(x+y)))+pi) z =-0.09012、a=-3.0:0.1:3.0;>> b=exp(-0.3*a).*sin(a+0.3)y =0.7218 1.0474-0.2180 1.15624、a*b表⽰a矩阵和b矩阵相乘a.*b表⽰a矩阵和b矩阵单个元素相乘A(m,n)表⽰取a矩阵第m⾏,第n列A(m,:)表⽰取a矩阵第m⾏的全部元素A(:,n)表⽰取a矩阵的第n列全部元素A./B表⽰a矩阵除以b矩阵的对应元素,B.\A等价于A./BA.^B表⽰两个矩阵对应元素进⾏乘⽅运算A.^2表⽰a中的每个元素的平⽅A^2表⽰A*A例:x=[1,2,3];y=[4,5,6];z=x.^yz=1 32 729指数可以是标量(如y=2).底数也可以是标量(如x=2)5、a=1+2i;>> b=3+4i;>> c=exp((pi*i)/6)c =0.8660 + 0.5000id=c+a*b/(a+b)d =1.6353 + 1.8462i第⼆章⼆、4、(1)y=0;k=0;>> while y<3k=k+1;>> display([k-1,y-1/(2*k-1)])ans =56.0000 2.9944第三章⼆1(1) x=0:pi/10:2*pi; >> y=x-x.^3/6; >> plot(x,y)1234567-40-35-30-25-20-15-10-505(2)x=0:pi/10:2*pi; y=(exp(-x.^2/2))/2*pi;plot(x,y)012345670.20.40.60.811.21.41.6(3)x=-8:0.01:8; y=sqrt((64-x.^2)/2);plot(x,y)-8-6-4-2024680123456(4)t=0:0.1:8*pi; >> x=t.*sin(t); >> y=t.*cos(t);-25-20-15-10-50510152025-30-20-10102030例3.4x=0:pi/100:2*pi; y1=exp(-0.5*x);y2=exp(-0.5*x).*sin(2*x); plot(x,y1,x,y2)>> title('x from 0 to 2{\pi} '); >> xlabel('variable x'); >> ylabel('variable y'); >> text(1.5,0.5,'曲线y1=e^(-0.5x)'); >> text(3,0.1,'曲线y2=cos(4{\pi}x)e^{-0.5x}'); >> legend('y1','y2')1234567-0.4-0.20.20.40.60.81x from 0 to 2πvariable xv a r i a b l e y曲线y1=e (-0.5x)曲线y2=cos(4πx)e -0.5xy1y22、(1)y1=2*x-0.5;t=linspace(0,pi,100); x=sin(3*t).*cos(t); y=sin(3*t).*sin(t);>> k=find(abs(y-x)<1e-2); >> t1=t(k) t1 =0 0.7933 1.04722.0944>> z=sin(3.*(t1)).*cos(t1) z =0 0.4841 0.0000 0.0000 -0.0000>> plot(t,x,t,y,'k:',t1,z,'bp');0.511.522.533.5-1-0.8-0.6-0.4-0.200.20.40.60.81(2)subplot(1,2,1); >> scatter(x1,y1,10); >> title('y=2x-0.5'); >> subplot(1,2,2); >> scatter(x,y,10)-1-0.8-0.6-0.4-0.200.20.40.60.81-1-0.8-0.6-0.4-0.200.20.40.63、subplot(1,2,1); x=0:0.01:pi; y=sin(1./x); plot(x,y)subplot(1,2,2);fplot('sin(1./x)',[1,100])1234-1-0.8-0.6-0.4-0.200.20.40.60.81204060801000.10.20.30.44、t=0:pi:2*pi; y=1./(1+exp(-t));subplot(2,2,1);%图形窗⼝的分割bar(t,'group'); %绘制柱形图(分组) subplot(2,2,2);barh(t,'stack');%绘制柱形图(堆积) subplot(2,2,3);loglog(t,y); %函数使⽤全对数坐标,x,y 均采⽤常⽤对数刻度 subplot(2,2,4); semilogy(t,y); %函数使⽤半对数坐标,y 轴为常⽤对数刻度,x 轴仍为线性刻度1230246802468123100.5100.710-0.01810-0.0010246810-0.310-0.210-0.15、(1)theta=linspace(-pi,pi,100); ro=5.*cos(theta)+4; polar(theta,ro); (2)x=linspace(0,2*pi,100);a=1>> r=a.*(1+cos(x)); polar(x,r);3021060240902701203001503301806、(1)t=0:pi/10:2*pi;>> x=exp((-t)/20).*cos(t); >> y=exp((-t)/20).*sin(t); >> z=t; >> plot3(x,y,z);-1-0.50.51-1-0.50.5102468(2)t=0:0.01:1; x=t;>> y=t.^2; >> z=t.^3;>> plot3(x,y,z);0.20.40.60.800.20.40.60.817、x=-30:0.1:0; >> y=0:0.1:30;>> [x,y]=meshgrid(x,y); >>z=10.*sin(sqrt(x.^2+y.^2))./sqrt(1+x.^2+y.^2);>> meshc(x,y,z);绘制曲⾯图和等⾼线-30-20-10102030-4-202468、x=linspace(-3,3,100); >> y=linspace(-3,3,100); >> [x y]=meshgrid(x,y); %可以将向量转化为矩阵 >> fxy=-5./(1+x.^2+y.^2); >> i=find(abs(x)<=0.8 & abs(y)<=0.5); >> fxy(i)=NaN; >>surf(x,y,fxy) %绘制三维曲⾯图-4-224-4-224-4-3-2-19、u=linspace(1,10,100); v=linspace(-pi,pi,100);[u v]=meshgrid(u,v); x=3.*u.*sin(v); y=2.*u.*cos(v); z=4*u.^2; surf(x,y,z); shading interp;-40-20-1010200100200300400第五章⼆1、a=rand(1,30000);mean(a) %求平均数 ans =0.5010 >>b=std(a) %求标准差 b =0.2882 >> c=max(a) c =0.9999 >> d=min(a) d =3.5706e-005size(find(a>0.5))/size(a) %求⼤于0.5的随机数个数占总数的百分⽐ans =0.50322、h=[466,715,950,1422,1635]; >> w=[7.04,4.28,3.40,2.52,2.13]; >> hh=[500,900,1500]; >> ww=interp1(h,w,hh,'spline')ww =6.4903 3.5226 2.3845 3、x=linspace(1,10,50); y=log(x);f=polyfit(x,y,5); %求曲线的拟合 >> yy=polyval(f,x); >> plot(x,y,'r-',x,yy,'g.') 123456789100.511.522.55、(1)、(2) p1=[1,2,0,7]; p2=[1,-2]; p3=[1,0,5,1]; p12=conv(p1,p2); >>p=p12+[zeros(1,size(p12,2)-size(p3,2)),p3]; >> roots(p) ans =-3.4656 0.6128 + 1.6278i 0.6128 - 1.6278i 1.2400-29 291 95 19 -3 697 -13 697 1427 >>y2=polyvalm(p,a)%以矩阵a 为⾃变量 y2 =391 2084 3273 502 2693 4207 720 3775 5892 6、(1)z=fzero('3*x-sin(x)+1',0) %求x=0时附近的根 z =-0.4903 第⼋章⼆、2t=0:pi/20:2*pi; x=sin(t); y=cos(t); x1=sin(7*t); y1=cos(7*t);h=plot(x,y,x1,y1);set(h,'marker','x','linewidth',2); set(gca,'xtick',-1:0.1:1); title('篮筐')-1-0.9-0.8-0.7-0.6-0.5-0.4-0.3-0.2-0.100.10.20.30.40.50.60.70.80.91 -1-0.8-0.6-0.4-0.200.20.40.60.81篮筐3、x=0:pi/10:5*pi;y=exp(-0.2*x).*cos(x)+2; h=plot(x,y);set(gca,'color','red','linestyle','-','linewidth',3);text(5,2.4,'y=exp(-0.2*x).*cos(x)+2');02468101214161.41.61.822.22.42.62.83y=exp(-0.2*x).*cos(x)+24、t=-pi:pi/100:pi; x=cos(t); y=sin(t); z=t;h=plot(t,x,t,y,t,z);set(h,'linestyle','-','linewidth',3);-4-3-2-101234-4-3-2-101234字符串例ch='Welcome to Beijing';subch=ch(12:18) 选12~18个字符串(空格也算)ans =WELCOME TO BEIJING >> length(k)统计⼩写字母的个数ans = 14 例:已知y=1-1/2+1/3-1/4.........-1/100求y 的值y=0; >> n=100; >> for i=1:100; y=y+(-1)^(i-1)/i; end>> disp(y)0.6882绘制⼆维曲线图x=0:pi/100:2*pi; >> y1=0.2*exp(-0.5*x).*cos(4*pi*x); >> y2=1.5*exp(-0.5*x).*cos(pi*x); >> plotyy(x,y1,x,y2); 7-0.20.20123456-202绘制三维图像例:x=sint+tcost y=cost-tsint z=tt=0:pi/10:10*pi; x=sin(t)+t.*cos(t); y=cos(t)-t.*sin(t); z=t; plot3(x,y,z); axis([-30 30 -30 30 0 35]); 坐标轴的最⼤值与最⼩值title('line in 3-D space'); 图形的题⽬ >> xlabel('x');ylabel('y');zlabel('z'); 标注坐标>> grid on; 加⽹格线 -30-20-10102030-20205101520253035xline in 3-D spaceyz三维例]2/,0[],,0[,cos sin 22ππ∈∈+=y x y x z [x,y]=meshgrid(0:pi/100:pi,0:pi/100:pi/2);>> z=sin(x.^2)+cos(y.^2);>> mesh(x,y,z);>> axis([0 4 0 1.8 -1.5 1.5]); 012340.511.5-1.5-1-0.500.511.5例3.16t=0:pi/20:2*pi; subplot(1,2,1);[x,y,z]=cylinder(sin(t),30);surf(x,y,z); 绘制三维曲⾯图subplot(1,2,2);>> [x,y,z]=peaks(100);>> mesh(x,y,z); 绘制三维⽹格图-11-10100.20.40.60.81-55-505-10-5510多项式求导例:f(x)=1/x^2+5 p=[1];>> q=[1,0,5];>> [p,q]=polyder(p,q)注:c=conv(a,b) 表⽰a 多项式与b 多项式乘积[p,r]=deconv(a,b) 表⽰a 多项式与b 多项式相除其中p 为商向量 r 为余数向量p=polyder(p) 表⽰求p 的导数 p=poleder(p,q) 表⽰求p 乘以q 的导数[p,q]=poleder(p,q) 表⽰p 除以q 的导数多项式求根例:f(x)=2x^4-12x^3+3x^2+5 p=[2,-12,3,0,5]; >> x=roots(p); >> p=[2,-12,3,0,5]; x=roots(p) 求⽅程f(x)=0的根 x =5.7246 0.8997 -0.3122 + 0.6229i -0.3122 - 0.6229i>> g=poly(x) 已知多项式的根求多项式 g =1.0000 -6.0000 1.5000 -0.00002.5000符号求导例7.3x=a(t-tsint)y=b(1-cost) 求y 对x 的⼀阶导数 syms x y a b t;>> f21=a*(t-sin(t)); >> f22=b*(1-cos(t));>> diff(f22)/diff(f21) 求y 对x 的⼀阶导数ans =b*sin(t)/a/(1-cos(t))注:diff(f1,x,2) 表⽰f1对x 的⼆阶导数diff (f3,x )表⽰z 对x 的偏导 diff (f3,y )表⽰z 对y 的偏导求不定积分int(f) 求f 的不定积分 f1=int(f,a,b) 求f 在a ,b 之间的定积分eval (f1)计算积分值符号求极限例7.2 syms x h>> f=(sin(x+h)-sin(x))/h;>> limit(f,h,0) h 趋向于0ans =cos(x)例2f=sym('(1+t/x)^x');limit(f,inf) f趋向于⽆穷ans =exp(t)例3f=sym('x*(sqrt(x^2+1)-x)');limit(f,sym('x'),inf,'left') x 趋向于正⽆穷ans =1/2⼤⼩写ch='Welcome to Beijing';subch=ch(12:18)subch =Beijing>> k=find(ch>='A'&ch<='Z'); ch(k)=ch(k)-('A'-'a');>> char(ch)ans =welcome to beijing>> length(k)ans =2。
MATLAB 课后部分答案
P77 第2章1、>> x=2;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)>> x=4;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)7、>> mat=rand(4,5);>> m=1;>> for i=1:2for j=1:5if mat(i,j)>0.3b(m)=mat(i,j);m=m+1;endendend>> b8、>> V=inv(A)>> A=rand(5,5);10、>> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8];B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C=A*B??? Error using ==> mtimesInner matrix dimensions must agree.>> C=A.*BC =5 16 24 -26-18 -12 -15 72-2 -21 108 -5611、>> x=linspace(0,2*pi,125);>> y=cos((x).*(0.5+3*sin(x)./(1+x.^2)));>> plot(x,y)13、>> x=-2:0.1:2;y=-2:0.1:2;>> [X,Y]=meshgrid(x,y);>> Z=X.^2.*exp(-X.^2-Y.^2);>> mesh(Z)建立一个M函数文件mycos.m,程序如下:function y=mycos(x)clear allx=input('请输入x的值')y=1./((x-2).^2+0.1)+1./((x-3).^3+0.01)在命令窗口输入:mycosP123 第3章1、>> x=[446 714 950 1422 1634];y=[7.04 4.28 3.40 2.54 2.13];>> xi=500:500:1500;>> yi=interp1(x,y,xi,'linear')4、>> p=[3 4 7 2 9 12];>> roots(p)8、>> a=[2 4 9;4 2 4;9 4 18];>> [V,D]=eig(a) %V的列向量是相应的特征向量,对角阵D的对角元素为a的特征值10、>> p1=[-1 4 0];p2=[-1 -4 0];>> A=polyder(p1);B=polyder(p2);>> A1=roots(A);B1=roots(B);>> y=4*A1-4*B1-A1.^2-B1.^213、>> syms x y>> Ex=int(int(x.*12.*y.^2,y,0,x),x,0,1)>> Ey=int(int(y.*12.*y.^2,x,y,1),y,0,1)>> Exy=Ex.*Ey14、>> A=rand(4,4);>> [L,U]=lu(A)>> [Q,R]=qr(A)P183 第4章1、>> n=-2*pi:0.01:2*pi;>> N=12;x=cos(n*pi./6);>> X=fft(x,N)>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> y=conv(xn,hn)4、>> n=0:11;h=0:5;>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> M=length(xn);N=length(hn);>> L=pow2(nextpow2(M+N-1));>> Xk=fft(xn,L);Hk=fft(hn,L);>> Yk=Xk.*Hk;>> yn=ifft(Yk,L)5、>> num=[2 3 0];den=[1 0.4 1];>> [z,p,k]=tf2zp(num,den)6、>> num=[4 15.6 6 2.4 -6.4];den=[3 2.4 6.3 -11.4 6]; >> [z,p,k]=tf2zp(num,den)>> zplane(z,p)7、>> num=[18 0 0 0];den=[18 3 -4 -1];>> [r,p,k]=residuez(num,den)9、建立一个M函数文件,程序如下:clear allN=10;[z,p,k]=buttap(N);[A,B,C,D]=zp2ss(z,p,k);wc1=100;wc2=200;[At,Bt,Ct,Dt]=lp2bp(A,B,C,D,wc1,wc2);[num1,den1]=ss2tf(At,Bt,Ct,Dt);[num2,den2]=impinvar(num1,den1);dimpulse(num2,den2)10、建立一个M函数文件,程序如下:clear allwp=100*2*pi;ws=200*2*pi;Rp=2;Rs=15;Fs=500;[N,Wc]=buttord(wp,ws,Rp,Rs,'s'); %选择滤波器的最小阶数[z,p,k]=buttap(N);[B,A]=zp2tf(z,p,k);[num,den]=bilinear(B,A,Fs); %模拟滤波器的传递函数转换为数字滤波器的传递函数freqz(num,den)11、建立一个M函数文件,程序如下:clear allN=48;w=[0.35,0.65];B=fir1(N,w,'bandpass'); %返回一个N阶的带通滤波器freqz(B) %绘制滤波器的频率响应曲线12、建立一个M函数文件,程序如下:clear allN=37;wc=0.3*pi;B=fir1(N,wc);freqz(B) %绘制滤波器的频率响应曲线13、建立一个M函数文件,程序如下:clear allN=55;F=[0:1/55:1];A=[ones(1,28),zeros(1,N-27)];B=fir2(N,F,A);freqz(B) %绘制滤波器的频率响应曲线15、建立一个M函数文件,程序如下:clear allwc=0.4*pi/(2*pi);N=12;[B,A]=butter(N,wc);%设计N阶截止频率为wc的Butterworth低通数字滤波器的传递函数模型m=dimpulse(B,A,101);stem(m,'.')P277 第6章2、建立一个M函数文件,程序如下:function [h,l]=huffmancode(P)if length(find(P<0))~=0,error('Not a prod.vector')endif abs(sum(P)-1)>10e-10error('Not a prod.vector')endn=length(P);for i=1:n-1for j=i:nif P(i)<=P(j)p=P(i);P(i)=P(j);P(j)=p;endendenddisp('概率分布'),PQ=P;m=zeros(n-1,n);for i=1:n-1[Q,l]=sort(Q);m(i,:)=[l(1:n-i+1),zeros(1,i-1)];Q=[Q(1)+Q(2),Q(3:n),1];endfor i=1:nc(i,:)=blanks(n*n);endc(n-1,n)='0';c(n-1,2*n)='1';for i=2:n-1c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))-(n-2):n*(find(m(n-i+1,:)==1)));c(n-1,n)='0';c(n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)='1';for j=1:i-1c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:)==j+1)-1)+1:n*find(m(n-i+1,:)==j+1));endendfor i=1:nh(i,1:n)=c(1,n*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*n);ll(i)=length(find(abs(h(i,:))~=32));endl=sum(P.*ll); %计算平均码长在命令窗口中输入:>> P=[0.20 0.15 0.13 0.12 0.1 0.09 0.08 0.07 0.06];>> [h,l]=huffmancode(P)3、建立一个M函数文件,程序如下:function[sqnr,a_quan,code]=u_pcm(a,n)% U_PCM 一个序列均匀的PCM编码.% n=量化级数的数目(偶数).% sqnr=输入信号量化噪声比(偶数)。
《MATLAB7.x》程序设计语言(第二版)课后题答案
《MATLAB7.x》程序设计语言(第二版)部分课后习题答案(楼顺天,姚若玉,沈俊霞编著)说明:所有答案均是本人在备考过程中亲自整理的,收录了一部分题目的答案。
答案可能存在不足甚至谬误,很多算法也可能不是最优的,仅供参考。
本人尽力整理的一点点心血,希望对大家有所帮助。
第二章8、a=rand(5,5);[i,j]=find(a>0.5);for u=1:length(i);b(u)=a(i(u),j(u));endb'10、aa=any(a');i=find(aa==0)a(i,:)=[];第四章1、function flag=isprime(m)%m为素数,flag=1%m不为素数,flag=0k=sqrt(m);flag=1;for i=2:k;if rem(m,i)==0;flag=0;breakendendm=input('input an integer\n');flag=isprime(m);if flag==1disp([num2str(m),'是素数'])elsedisp([num2str(m),'不是素数'])end4、function [x1,x2]=jfc(a,b,c)d=b^2-4*a*c;if d>0;x1=(-b-sqrt(d))/(2*a);x2=(-b+sqrt(d))/(2*a);elseif d==0;x1=-b/(2*a);x2=x1;enda=input('a=');b=input('b=');c=input('c=');[x1,x2]=jfc(a,b,c);if x1~=x2;disp('原方程存在两个不同的根')disp(['x1=',num2str(x1)])disp(['x2=',num2str(x2)]);elseif x1==x2;disp('原方程存在两个相同的根')disp(['x1=x2=',num2str(x1)])elsedisp('原方程的根不存在')end%MATLAB上机作业,184页习题4,求二次方程的实根function [s1,s2]=solve(a,b,c)d=b^2-4*a*c;if d>0s1=(-b-sqrt(d))/(2*a)s1=(-b-sqrt(d))/(2*a)%disp(['原方程有两个不同的根'num2str(s1)'和'nums2tr(s2)]) elseif d==0s1=(-b-sqrt(d))/(2*a);s1=(-b-sqrt(d))/(2*a);%disp(['原方程有两个相同的根'num2str(s1))elsedisp('原方程无实根')endend5、x=-3:0.01:3;if x>=-3 & x<-1;y=(-x.^2-4*x-3)/2;elseif x>=-1 & x<1;y=-x.^2+1;elsey=(-x.^2+4*x-3)/2;endplot(x,y)6、%MATLAB上机作业,184页习题6,点不同按钮产生不同分布的数s=menu('请选择随机数类型','U[-10,10]','U[-5,5]','U[-1,1]','N(0,1)');switch scase 1,n=(rand(1)-0.5)*20;case 2,n=(rand(1)-0.5)*10;case 3,n=(rand(1)-0.5)*2;case 4,n=randn(1);otherwise disp('请选择!')endn7、load a.txt[m,n]=size(a);w=zeros(m,1);for i=1:m;w(i)=(2*a(i,1)+3*a(i,2)+2*a(i,3)+4*a(i,4)+2.5*a(i,5)+a(i,6))/14.5;endw8、function k=jj(i)if i<=10k=0.1*i;elseif i<=20k=1+(i-10)*0.05;elseif i<=40k=1.5+(i-20)*0.02;elsek=1.9+(i-40)*0.01;ends=0;a=2;b=1;for i=1:15;s=s+a/b;c=b;b=a;a=a+c;ends9、a=ones(15,1);b=ones(15,1);c=ones(15,1);a(1)=2;c(1)=2;for i=2:15;a(i)=b(i-1)+a(i-1);b(i)=a(i-1);c(i)=a(i)./b(i)endsum(c)第五章3、t=1:1:10;t=t';y=[4.842,4.362,3.754,3.368,3.169,3.083,3.304,3.016,3.012,3.005]';x1=[ones(size(t)),exp(-t)];x2=[ones(size(t)),t.*exp(-t)];p1=x1\y;p2=x2\y;tt=linspace(1,10,1000);plot(t,y,'*',tt,p1(1)+p1(2)*exp(-tt),'r-',tt,p2(1)+p2(2)*tt.*exp(-tt),'c-')grid on,legend('给定数据','y1拟合','y2拟合')5、(1)function dy=cwf(t,y)dy=[5*y(1)-5*y(2)-6*y(3);3*y(1)-2*y(2)+5*y(3);2*y(1)-y(2)-4*y(3)];x0=[1,-4,5];tspan=[13,16];[t,y]=ode45('cwf',tspan,x0);plot(t,y)(2)function dy=cwf(t,y)dy=[y(1)+2*y(2)-3*y(3)+y(4);3*y(1)+y(3)-2*y(4);y(1)-2*y(2)+5*y(4);2*y(1)+3*y(2)+y(4)];x0=[1,-1,2,1];tspan=[15,16];[t,y]=ode45('cwf',tspan,x0);plot(t,y)7、t=1:10;tt=1:0.01:10;y=[15,39.5,66,85.5,89,67.5,12,-86.4,-236.9,-448.4];p1=polyfit(t,y,2);y1=polyval(p1,tt);p2=polyfit(t,y,3);y2=polyval(p2,tt);plot(t,y,'b*',tt,y1,'r-',tt,y2,'c-');legend('样本点','二次拟合','三次拟合'),grid on10&11、pa=[2 3 -4];pb=[4 -2 5];pc=[3 -2 5 6];d1=conv(pa,pb)[q2,r2]=deconv(pc,pa)[q3,r3]=deconv(pc,pb)dy1=polyder(pa,pb)[q2,r2]=polyder(pc,pa)[q3,r3]=polyder(pc,pb)12、x=-5:1:5;xx=-5:0.01:5;y=10.*exp(-abs(x));y1=interp1(x,y,xx,'nearest');y2=interp1(x,y,xx,'linear');y3=interp1(x,y,xx,'spline');y4=interp1(x,y,xx,'cubic');plot(x,y,'*',xx,y1,'r-',xx,y2,'c-',xx,y3,'k-',xx,y4,'g-')grid on,legend('样本点','最临近内插','线性内插','三次样条内插','三次曲线内插')13、a=rand(1,50);amax=max(a)amin=min(a)ua=mean(a)vara=(std(a))^2b=randn(1,50);bmax=max(a)bmin=min(a)ub=mean(a)varb=(std(a))^214、t=[0,0.2,0.4,0.6,0.8,1,2,5]';tt=0:0.01:5;y=[1,1.51,1.88,2.13,2.29,2.4,2.6,-4]';p1=polyfit(t,y,3);y1=polyval(p1,tt);x=[ones(size(t)),exp(t)];p2=x\y;y2=p2(1)+p2(2)*exp(tt);plot(t,y,'k*',tt,y1,'r-',tt,y2,'b-')legend('样本点','三次多项式拟合','指数拟合'),grid on17、function y=jifen1(x)y=exp(-2*x);function y=jifen2(x)y=exp(2*x);function y=jifen3(x)y=x.^2-3*x+0.5;z1=quadl('jifen1',0,2)z2=quadl('jifen2',0,2)z3=quadl('jifen3',-1,1)19、function z=jifen(x,y)z=exp(-x*y)-2*x*y;q=dblquad('jifen',0,1,-1,1)20、function dy=cwf(t,y)dy=[0.5-y(1);y(1)-4*y(2)];x0=[1,-0.5];tspan=[0,25];[t,y]=ode45('cwf',tspan,x0);plot(y(1,:),y(2,:));grid on。
《MATLAB+7.X程序设计》习题答案汇总
习题答案第1章1-2(1)使用Windows“开始”菜单。
(2)运行MATLAB系统启动程序matlab.exe。
(3)利用快捷方式。
1-3 MATLAB系统主要由开发环境、MATLAB函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。
1-4窗口:M文件编辑/调试器、历史指令窗、当前目录浏览器、工作空间浏览器、内存数组编辑器、交互界面分类目录窗、及帮助导航/浏览器和图形窗。
1-5在操作桌面上选择建立新文件或打开文件操作时,M文件编辑/调试器将被启动。
在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。
MATLAB的开发环境中包括了专门的M文件编辑器,该编辑器不但提供了M文件的编辑功能,同时还与MATLAB的开发环境一起实现了MATLAB命令和函数文件的运行与调试。
1-6Copy 将所选历史命令拷贝到剪贴板EvaluateSelection 运行所选历史命令CreateM-File 打开编辑器,将所选历史命令复制到编辑器DeleteSelection 删除所选历史命令(不确认是否删除) DeletetoSelection 从头删除到所选历史命令(不确认是否删除) DeleteEntireHistory 清除全部历史命令(将弹出对话框确认是否清除)1-7当用户在MATLAB命令窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。
基本的搜索过程是:(1)检查该命令是不是一个变量。
(2)检查该命令是不是一个内部函数。
(3)检查该命令是否当前目录下的M文件。
(4)检查该命令是否MATLAB搜索路径中其他目录下的M文件。
用户可以将自己的工作目录列入MATLAB搜索路径,从而将用户目录纳入MATLAB系统统一管理。
设置搜索路径的方法有:(1)用path命令设置搜索路径。
例如,将用户目录c:\mydir加到搜索路径下,可在命令窗口输入命令:2MTALB 7.X 程序设计path(path,’d:\my’)(2) 用对话框设置搜索路径1-8在MATLAB中有多种获得帮助的途径:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help 菜单项可以打开帮助浏览器;(2)help命令:在命令窗口键入help 命令可以列出帮助主题,键入help 函数名可以得到指定函数的在线帮助信息;(3)lookfor命令:在命令窗口键入lookfor 关键词可以搜索出一系列与给定关键词相关的命令和函数;注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息。
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=[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的元素的个数。
matlab课后习题答案
习题二1.如何理解“矩阵是MATLAB最基本的数据对象”?答:因为向量可以看成是仅有一行或一列的矩阵,单个数据(标量)可以看成是仅含一个元素的矩阵,故向量和单个数据都可以作为矩阵的特例来处理。
因此,矩阵是MATLAB最基本、最重要的数据对象。
2.设A和B是两个同维同大小的矩阵,问:(1)A*B和A.*B的值是否相等?答:不相等。
(2)A./B和B.\A的值是否相等?答:相等。
(3)A/B和B\A的值是否相等?答:不相等。
(4)A/B和B\A所代表的数学含义是什么?答:A/B等效于B的逆右乘A矩阵,即A*inv(B),而B\A等效于B矩阵的逆左乘A矩阵,即inv(B)*A。
3.写出完成下列操作的命令。
(1)将矩阵A第2~5行中第1, 3, 5列元素赋给矩阵B。
答:B=A(2:5,1:2:5); 或B=A(2:5,[1 3 5])(2)删除矩阵A的第7号元素。
答:A(7)=[](3)将矩阵A的每个元素值加30。
答:A=A+30;(4)求矩阵A的大小和维数。
答:size(A);ndims(A);(5)将向量t的0元素用机器零来代替。
答:t(find(t==0))=eps;(6)将含有12个元素的向量x转换成34矩阵。
答:reshape(x,3,4);(7)求一个字符串的ASCII码。
答:abs(‘123’); 或double(‘123’);(8)求一个ASCII码所对应的字符。
答:char(49);4.下列命令执行后,L1、L2、L3、L4的值分别是多少?A=1:9;B=10-A;...L1=A==B;L2=A<=5;L3=A>3&A<7;L4=find(A>3&A<7);答:L1的值为[0, 0, 0, 0, 1, 0, 0, 0, 0]L2的值为[1, 1, 1, 1, 1, 0, 0, 0, 0]L3的值为[0, 0, 0, 1, 1, 1, 0, 0, 0]L4的值为[4, 5, 6]5.已知完成下列操作:(1)取出A的前3行构成矩阵B,前两列构成矩阵C,右下角32⨯子矩阵构成矩阵D,B 与C的乘积构成矩阵E。
matlab课后习题参考答案
Matlab课后习题部分参考答案习题二2.student=struct('name',{'zhang','wang','li'},'age',{18,21,[] },'email',{['zh ang@','zhang@'],'',''})5、a=[1 0 0;1 1 0;0 0 1];b=[2 3 4;5 6 7;8 9 10];c=[a b]d=[a;b]c =1 0 023 41 1 0 5 6 70 0 1 8 9 10d =1 0 01 1 00 0 12 3 45 6 78 9 1010、reshape(c,2,9)1 0 1 0 1 5 3 9 71 0 0 02 8 6 4 10 reshape(d,2,9)ans =1 0 5 0 0 6 0 1 71 2 8 1 3 9 0 4 10 (注意:重新排列矩阵,是将原来的矩阵按列排序)11、a.’12、a+b a.*ba\b (即inv(a)*b,考试时,要求能自己手算出a的逆)ans =2 3 43 3 38 9 1013、c=4*ones(3);a>=cb>=c14.strcat('The picture is ','very good')a=['The picture is ','very good']18.double('very good')1.norm(A),det(A),rank(A)2.b=[1 1 1 1 1];c=b';a=[17,24,1,8,50;23,5,7,14,49;4,6,13,20,43;10,12,19,21,62;11,18,25,2,56]; x=a\c习题四1、a=14*rand(1,10)-5;for i=1:9max=i;for j=i+1:10if a(j)>a(max)max=j;endendtemp=a(i);a(i)=a(max);a(max)=temp;enda将上述脚本保存为script41.m2、function y=function42(n)3*randn(1,n)+3;for i=1:n-1max=i;for j=i+1:nif a(j)>a(max)max=j;endendtemp=a(i);a(i)=a(max);a(max)=temp;endy=a;将上述函数保存为function42.m 3、r=input(‘please input 1/2: ’);if r= =1script41;elsen=input(‘please input the length: ’);y=funtion42(n);end4.function f=function1(x,y)if y==1f=sin(x);elseif y==2f=cos(x);elsef=sin(x).*cos(x);end在命令窗口调用函数f=function1(1,3) 5.function result=function3(x,n)result=0;for i=1:nresult=result+sin(x.*i)+(-1).^i.*cos(i.*x); endfunction result=function4(n,t)result=0;A=[1 2 3;0 1 2;0 0 1];for i=1:nresult=result+A*i.*exp(A*i.*t);end习题五3.x1=-2:0.01:2;x2=-2:0.01:2;y1=x1.*sin(x2);y2=x2.*cos(x1);plot3(x1,x2,y 1,'-d',x1,x2,y2,'-d')14、x=8*rand(1,100)-2;y=reshape(x,10,10);save mydata.mat yclearclcload mydatak=y>ones(10);totel=0;for i=1:100if k(i)==1totel=totel+1;endend15、x=rand(5); %生成5*5均匀分布的随机矩阵(该处只作举例,未按题目要求)fid=fopen(‘text.txt’,’w’);count=fwrite(fid,x,’int32’); closestatus=fclose(fid);清除内存,关闭所有窗口fid=fopen(‘text.txt’,’r’);x=fread(fid,[5,5],’int32’); closestatus=fclose(fid); inv(x)16.随便生成一个矩阵,x1=-1:0.2:0.8;x2=-1:0.2:0.8;y1=x1.*sin(x2);y2=x2.*cos(x1);a=reshape([y1;y2],10,10);fid=fopen('table.txt','w'); fprintf (fid,‘%f’,a); fclose(fid) ;清除内存,关闭所有窗口a=fscanf('table.txt','%f') ; exp(a) ;fclose(fid) ;习题六1.c=ploy2str(A);B=[2,0,0,1,3,5];2.x=1:10;B=ployval(A,x);。
matlab课后练习习题及答案详解
matlab课后习题及答案详解第1章MATLAB概论与其余计算机语言对比较,MATLAB语言突出的特色是什么?MATLAB拥有功能强盛、使用方便、输入简捷、库函数丰富、开放性强等特色。
MATLAB系统由那些部分构成?MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。
安装MATLAB时,在选择组件窗口中哪些部分一定勾选,没有勾选的部分此后怎样补安装?在安装MATLAB时,安装内容由选择组件窗口中个复选框能否被勾选来决定,能够依据自己的需要选择安装内容,但基本平台(即MATLAB选项)一定安装。
第一次安装没有选择的内容在补安装时只要依据安装的过程进行,不过在选择组件时只勾选要补装的组件或工具箱即可。
MATLAB操作桌面有几个窗口?怎样使某个窗口离开桌面成为独立窗口?又怎样将离开出去的窗口从头搁置到桌面上?在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是封闭窗口的Close按钮,一个是能够使窗口成为独立窗口的Undock 按钮,点击Undock按钮就能够使该窗口离开桌面成为独立窗口,在独立窗口的view菜单中选择Dock,,菜单项就能够将独立的窗口从头防备的桌面上。
怎样启动M文件编写/调试器?在操作桌面上选择“成立新文件”或“翻开文件”操作时,M文件编写/调试器将被启动。
在命令窗口中键入edit命令时也能够启动M文件编写/调试器。
储存在工作空间中的数组能编写吗?怎样操作?储存在工作空间的数组能够经过数组编写器进行编写:在工作空间阅读器中双击要编写的数组名翻开数组编写器,再选中要改正的数据单元,输入改正内容即可。
命令历史窗口除了能够察看前方键入的命令外,还有什么用途?命令历史窗口除了用于查问从前键入的命令外,还能够直接履行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。
怎样设置目前目录和搜寻路径,在目前目录上的文件和在搜寻路径上的文件有什么差别?目前目录能够在目前目录阅读器窗口左上方的输入栏中设置,搜寻路径能够经过选择操作桌面的file菜单中的SetPath菜单项来达成。
MATLAB课后习题集附标准答案
第2章MATLAB概论1、与其他计算机语言相比较,MA TLAB 语言突出的特点是什么?答:起点高、人机界面适合科技人员、强大而简易的作图功能、智能化程度高、功能丰富,可扩展性强.2、MA TLAB 系统由那些部分组成?答:开发环境、MATLAB数学函数库、MATLAB语言、图形功能、应用程序接口3、安装MATLAB 时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?答:在安装MATLAB时,安装内容由选择组件窗口中各复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装. 第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可. 矚慫润厲钐瘗睞枥庑赖。
4、MATLAB 操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?聞創沟燴鐺險爱氇谴净。
答:在MATLAB 操作桌面上有五个窗口,在每个窗口的右下角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口称为独立的Undock 按钮,点击Undock 按钮就可以使该窗口脱离桌面称为独立窗口,在独立窗口的view 菜单中选择Dock,菜单项就可以将独立的窗口重新防止的桌面上.残骛楼諍锩瀨濟溆塹籟。
5、如何启动M 文件编辑/调试器?答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M 文件编辑/调试器将被启动.在命令窗口中键入edit 命令时也可以启动M 文件编辑/调试器.酽锕极額閉镇桧猪訣锥。
6、存储在工作空间中的数组能编辑吗?如何操作?答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可.彈贸摄尔霁毙攬砖卤庑。
7、命令历史窗口除了可以观察前面键入的命令外,还有什么用途?答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中. 謀荞抟箧飆鐸怼类蒋薔。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)的三维曲线和网格曲线。