首页 matlab课后习题及答案详解

matlab课后习题及答案详解

举报
开通vip

matlab课后习题及答案详解第1章MATLAB概论1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么?MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。1.2MATLAB系统由那些部分组成?MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。1.3安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MA...

matlab课后习题及答案详解
第1章MATLAB概论1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么?MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。1.2MATLAB系统由那些部分组成?MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。1.3安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。1.4MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock……菜单项就可以将独立的窗口重新防止的桌面上。1.5如何启动M文件编辑/调试器?在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。1.6存储在工作空间中的数组能编辑吗?如何操作?存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。1.7命令历史窗口除了可以观察前面键入的命令外,还有什么用途?命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。1.8如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的SetPath菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。1.9在MATLAB中有几种获得帮助的途径?在MATLAB中有多种获得帮助的途径:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLABHelp菜单项可以打开帮助浏览器;(2)help命令:在命令窗口键入“help”命令可以列出帮助主题,键入“help函数名”可以得到指定函数的在线帮助信息;(3)lookfor命令:在命令窗口键入“lookfor关键词”可以搜索出一系列与给定关键词相关的命令和函数(4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数。注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息。第2章MATLAB矩阵运算基础2.1在MATLAB中如何建立矩阵,并将其赋予变量a?>>a=[573;491]2.2有几种建立矩阵的方法?各有什么优点?可以用四种方法建立矩阵:①直接输入法,如a=[2573],优点是输入方法方便简捷;②通过M文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改;③由函数建立,如y=sin(x),可以由MATLAB的内部函数建立一些特殊矩阵;④通过数据文件建立,该方法可以调用由其他软件产生数据。2.3在进行算术运算时,数组运算和矩阵运算各有什么要求?进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a与b相乘(a*b)时必须满足a的列数等于b的行数。2.4数组运算和矩阵运算的运算符有什么区别?在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b为矩阵乘,a.*b为数组乘。2.5计算矩阵与之和。>>a=[535;374;798];>>b=[242;679;836];>>a+bans=777914131512142.6求的共轭转置。>>x=[4+8i3+5i2-7i1+4i7-5i;3+2i7-6i9+4i3-9i4+4i];>>x’ans=4.0000-8.0000i3.0000-2.0000i3.0000-5.0000i7.0000+6.0000i2.0000+7.0000i9.0000-4.0000i1.0000-4.0000i3.0000+9.0000i7.0000+5.0000i4.0000-4.0000i2.7计算与的数组乘积。>>a=[693;275];>>b=[241;468];>>a.*bans=12363842402.8“左除”与“右除”有什么区别?在通常情况下,左除x=a\b是a*x=b的解,右除x=b/a是x*a=b的解,一般情况下,a\bb/a。2.9对于,如果,,求解X。>>A=[492;764;357];>>B=[372628]’;>>X=A\BX=-0.51184.04271.33182.10已知:,分别计算a的数组平方和矩阵平方,并观察其结果。>>a=[123;456;789];>>a.^2ans=149162536496481>>a^2ans=3036426681961021261502.11,,观察a与b之间的六种关系运算的结果。>>a=[123;456];>>b=[8–74;362];>>a>bans=010101>>a>=bans=010101>>a>a<=bans=101010>>a==bans=000000>>a~=bans=1111112.12,在进行逻辑运算时,a相当于什么样的逻辑量。相当于a=[11011]。2.13在sin(x)运算中,x是角度还是弧度?在sin(x)运算中,x是弧度,MATLAB规定所有的三角函数运算都是按弧度进行运算。2.14角度,求x的正弦、余弦、正切和余切。>>x=[304560];>>x1=x/180*pi;>>sin(x1)ans=0.50000.70710.8660>>cos(x1)ans=0.86600.70710.5000>>tan(x1)ans=0.57741.00001.7321>>cot(x1)ans=1.73211.00000.57742.15用四舍五入的方法将数组[2.45686.39823.93758.5042]取整。>>b=[2.45686.39823.93758.5042];>>round(b)ans=26492.16矩阵,分别对a进行特征值分解、奇异值分解、LU分解、QR分解及Chollesky分解。>>[v,d]=eig(a,b)v=-0.4330-0.2543-0.1744-0.56570.9660-0.6091-0.70180.04720.7736d=13.54820004.83030003.6216>>a=[912;563;827];>>[u,s,v]=svd(a)u=-0.56010.5320-0.6350-0.4762-0.8340-0.2788-0.67790.14620.7204s=15.52340004.56480003.3446v=-0.82750.3917-0.4023-0.3075-0.9156-0.2592-0.4699-0.09070.8781>>[l,u]=lu(a)l=1.0000000.55561.000000.88890.20411.0000u=9.00001.00002.000005.44441.8889004.8367>>[q,r]=qr(a)q=-0.69030.3969-0.6050-0.3835-0.9097-0.1592-0.61360.12210.7801r=-13.0384-4.2183-6.82600-4.8172-1.0807003.7733>>c=chol(a)c=3.00000.33330.666702.42671.1447002.29032.17将矩阵、和组合成两个新矩阵:(1)组合成一个43的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即(2)按照a、b、c的列顺序组合成一个行矢量,即>>a=[42;57];>>b=[71;83];>>c=[59;62];%(1)>>d=[a(:)b(:)c(:)]d=475586219732%(2)>>e=[a(:);b(:);c(:)]'e=452778135692或利用(1)中产生的d>>e=reshape(d,1,12)ans=452778135692第3章数值计算基础3.1将(x-6)(x-3)(x-8)展开为系数多项式的形式。>>a=[638];>>pa=poly(a);>>ppa=poly2sym(pa)ppa=x^3-17*x^2+90*x-1443.2求解多项式x3-7x2+2x+40的根。>>r=[1-7240];>>p=roots(r);-0.21510.44590.79490.27073.3求解在x=8时多项式(x-1)(x-2)(x-3)(x-4)的值。>>p=poly([1234]);>>polyvalm(p,8)ans=8403.4计算多项式乘法(x2+2x+2)(x2+5x+4)。>>c=conv([122],[154])c=17161883.5计算多项式除法(3x3+13x2+6x+8)/(x+4)。>>d=deconv([31368],[14])d=3123.6对下式进行部分分式展开:>>a=[134272];>>b=[32546];>>[r,s,k]=residue(b,a)r=1.1274+1.1513i1.1274-1.1513i-0.0232-0.0722i-0.0232+0.0722i0.7916s=-1.7680+1.2673i-1.7680-1.2673i0.4176+1.1130i0.4176-1.1130i-0.2991k=[]3.7计算多项式的微分和积分。>>p=[4-12-1459];>>pder=polyder(p);>>pders=poly2sym(pder)>>pint=polyint(p);>>pints=poly2sym(pint)pders=12*x^2-24*x-14pints=x^4-4*x^3-7*x^2+5*x3.8解方程组。>>a=[290;3411;226];>>b=[1366]';>>x=a\bx=7.4000-0.2000-1.40003.9求欠定方程组的最小范数解。>>a=[2474;9356];>>b=[85]';>>x=pinv(a)*b%伪逆x=-0.21510.44590.79490.27073.10有一组测量数据如下 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 所示,数据具有y=x2的变化趋势,用最小二乘法求解y。x11.522.533.544.55y-1.42.735.98.412.216.618.826.2>>x=[11.522.533.544.55]'>>y=[-1.42.735.98.412.216.618.826.2]'>>e=[ones(size(x))x.^2]>>c=e\y>>x1=[1:0.1:5]';>>y1=[ones(size(x1))x1.^2]*c;>>plot(x,y,'ro',x1,y1,'k')%平面线图3.11矩阵,计算a的行列式和逆矩阵。>>a=[42-6;754;349];>>ad=det(a)>>ai=inv(a)ad=-64ai=-0.45310.6562-0.59370.7969-0.84370.9062-0.20310.1562-0.09373.12y=sin(x),x从0到2,x=0.02,求y的最大值、最小值、均值和标准差。>>x=0:0.02*pi:2*pi;>>y=sin(x);>>ymax=max(y)>>ymin=min(y)>>ymean=mean(y)>>ystd=std(y)ymax=1ymin=-1ymean=2.2995e-017ystd=0.70713.13,,计算x的协方差、y的协方差、x与y的互协方差。>>x=[12345];>>y=[246810];>>cx=cov(x)>>cy=cov(y)>>cxy=cov(x,y)cx=2.5000cy=10cxy=2.50005.00005.000010.00003.14参照例3-20的方法,计算表达式的梯度并绘图。>>v=-2:0.2:2;>>[x,y]=meshgrid(v);%产生"格点"矩阵>>z=10*(x.^3-y.^5).*exp(-x.^2-y.^2);>>[px,py]=gradient(z,.2,.2);%近似梯度>>contour(x,y,z)%等位线>>holdon>>quiver(x,y,px,py)%二维方向箭头图>>holdoff3.15有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:pi/5:4*pi,用三次样条法进行插值。>>x0=0:pi/5:4*pi;>>y0=sin(x0).*exp(-x0/10);>>x=0:pi/20:4*pi;>>y=spline(x0,y0,x);%样条插值>>plot(x0,y0,'or',x,y,'b')第4章符号数学基础4.1创建符号变量有几种方法?MATLAB提供了两种创建符号变量和表达式的函数:sym和syms。sym用于创建一个符号变量或表达式,用法如x=sym(‘x’)及f=sym(‘x+y+z’),syms用于创建多个符号变量,用法如symsxyz。f=sym(‘x+y+z’)相当于symsxyzf=x+y+z4.2下面三种表示方法有什么不同的含义?(1)f=3*x^2+5*x+2(2)f='3*x^2+5*x+2'(3)x=sym('x')f=3*x^2+5*x+2(1)f=3*x^2+5*x+2表示在给定x时,将3*x^2+5*x+2的数值运算结果赋值给变量f,如果没有给定x则指示错误信息。(2)f='3*x^2+5*x+2'表示将字符串'3*x^2+5*x+2'赋值给字符变量f,没有任何计算含义,因此也不对字符串中的内容做任何分析。(3)x=sym('x')f=3*x^2+5*x+2表示x是一个符号变量,因此算式f=3*x^2+5*x+2就具有了符号函数的意义,f也自然成为符号变量了。4.3用符号函数法求解方程at2+b*t+c=0。>>r=solve('a*t^2+b*t+c=0','t')r=[1/2/a*(-b+(b^2-4*a*c)^(1/2))][1/2/a*(-b-(b^2-4*a*c)^(1/2))]4.4用符号计算验证三角等式:sin(1)cos(2)-cos(1)sin(2)=sin(1-2)>>symsphi1phi2;>>y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2))y=sin(phi1-phi2)4.5求矩阵的行列式值、逆和特征根。>>symsa11a12a21a22;>>A=[a11,a12;a21,a22]>>AD=det(A)%行列式>>AI=inv(A)%逆>>AE=eig(A)%特征值A=[a11,a12][a21,a22]AD=a11*a22-a12*a21AI=[-a22/(-a11*a22+a12*a21),a12/(-a11*a22+a12*a21)][a21/(-a11*a22+a12*a21),-a11/(-a11*a22+a12*a21)]AE=[1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)][1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)]4.6因式分解:>>symsx;>>f=x^4-5*x^3+5*x^2+5*x-6;>>factor(f)ans=(x-1)*(x-2)*(x-3)*(x+1)4.7,用符号微分求df/dx。>>symsax;>>f=[a,x^2,1/x;exp(a*x),log(x),sin(x)];>>df=diff(f)df=[0,2*x,-1/x^2][a*exp(a*x),1/x,cos(x)]4.8求代数方程组关于x,y的解。>>S=solve('a*x^2+b*y+c=0','b*x+c=0','x','y');>>disp('S.x='),disp(S.x)>>disp('S.y='),disp(S.y)S.x=-c/bS.y=-c*(a*c+b^2)/b^34.9符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为[0,2]。>>symst>>ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),[0,pi])%画二维曲线的简捷指令4.10绘制极坐标下sin(3*t)*cos(t)的图形。>>symst>>ezpolar(sin(3*t)*cos(t)%画极坐标图的简捷指令第5章基本图形处理功能5.1绘制曲线,x的取值范围为[-5,5]。>>x=-5:0.2:5;>>y=x.^3+x+1;>>plot(x,y)5.2有一组测量数据满足,t的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线。>>t=0:0.5:10;>>y1=exp(-0.1*t);>>y2=exp(-0.2*t);>>y3=exp(-0.5*t);>>plot(t,y1,'-ob',t,y2,':*r',t,y3,'-.^g')5.3在5.1题结果图中添加标题,并用箭头线标识出各曲线a的取值。>>title('\ity\rm=e^{-\itat}')>>title('\ity\rm=e^{-\itat}','FontSize',12)>>text(t(6),y1(6),'\leftarrow\ita\rm=0.1','FontSize',11)>>text(t(6),y2(6),'\leftarrow\ita\rm=0.2','FontSize',11)>>text(t(6),y3(6),'\leftarrow\ita\rm=0.5','FontSize',11)5.4在5.1题结果图中添加标题和图例框。>>title('\ity\rm=e^{-\itat}','FontSize',12)>>legend('a=0.1','a=0.2','a=0.5')5.5表中列出了4个观测点的6次测量数据,将数据绘制成为分组形式和堆叠形式的条形图。第1次第2次第3次第4次第5次第6次观测点1367428观测点2673247观测点3972584观测点4643274>>y=[3696;6774;7323;4252;2487;8744];>>bar(y)>>bar(y,’stack’)5.6x=[6649715638],绘制饼图,并将第五个切块分离出来。>>x=[6649715638];>>L=[00001];>>pie(x,L)5.7,当x和y的取值范围均为-2到2时,用建立子窗口的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图。>>[x,y]=meshgrid([-2:.2:2]);%产生"格点"矩阵>>z=x.*exp(-x.^2-y.^2);>>mesh(x,y,z)%网线图>>subplot(2,2,1),plot3(x,y,z)%创建子图>>title('plot3(x,y,z)')>>subplot(2,2,2),mesh(x,y,z)>>title('mesh(x,y,z)')>>subplot(2,2,3),surf(x,y,z)%三维着色表面图>>title('surf(x,y,z)')>>subplot(2,2,4),surf(x,y,z),shadinginterp%插值>>title('surf(x,y,z),shadinginterp')5.8绘制peaks函数的表面图,用colormap函数改变预置的色图,观察色彩的分布情况。>>surf(peaks(30));%三维着色表面图>>colormap(hot)%色图>>colormap(cool)>>colormap(lines)5.9用sphere函数产生球表面坐标,绘制不通明网线图、透明网线图、表面图和带剪孔的表面图。>>[x,y,z]=sphere(30);%产生球面>>mesh(x,y,z)>>mesh(x,y,z),hiddenoff>>surf(x,y,z)>>z(18:30,1:5)=NaN*ones(13,5);>>surf(x,y,z)5.10将5.9题中的带剪孔的球形表面图的坐标改变为正方形,以使球面看起来是圆的而不是椭圆的,然后关闭坐标轴的显示。axissquareaxisoff第6章高级图形处理功能6.1轴对象是使用的最多的图形对象之一,那么轴对象是哪个对象的子对象,又是那些对象的父对象?轴对象是图形窗口对象的子对象,是图像、灯光、线、块、矩形、表面、字的父对象。6.2什么是图形句柄?图形句柄有什么用途?图形句柄是每个图形对象从产生时起就被赋予的一个唯一的标识。利用图形句柄既可以操纵一个已经存在的图形对象的属性,也可以在建立图形对象时指定属性的值,特别是对指定对象句柄的操作不会影响同时存在的其他对象,这是非常有用的。6.3如何设置和获取指定句柄对象的属性值?一图形窗口对象的句柄为h,先查询该窗口对象可以设置的各种属性,再将窗口的灰色背景设置为白色背景。(1)利用set(句柄,‘属性名称’,属性值)语句可以设置指定对象的属性,get(句柄,‘属性名称’)语句可以获得指定对象的属性。(2)>>set(h)AlphamapBackingStore:[{on}|off]CloseRequestFcn:string-or-functionhandle-or-cellarrayColorColormapCurrentAxesCurrentCharacterCurrentObject……从列出的属性内容可以看到,设置背景颜色的属性名为Color,因此>>set(h,’color’,’w’)即可将图形窗口的背景色改为白色。6.4已知三维图形视角的缺省值是方位角为-37.5°,仰角为30°,将观察点顺时针旋转20角的命令是什么?>>view(-57.5,30)6.5画一双峰曲面(peaks)图,加灯光light,改变光源的位置观察图形的变化。>>surf(peaks)>>shadinginterp>>lightingphong>>light('Position',[-3-21]);>>light('Position',[-101]);6.6在双峰曲面上改变不同的光照模式,观察效果。>>surf(peaks)>>shadinginterp>>light('Position',[-3-21]);>>lightingflat>>lightinggouraud>>lightingphong>>lightingnone6.7用subplot语句在一个图形窗口上开多个大小不等的子窗口进行绘图并添加注释,见图。>>subplot('position',[0.1,0.15,0.3,0.65])>>hist(randn(1,1000),20);>>xlabel('直方图')>>subplot('position',[0.45,0.52,0.25,0.28])>>[xp,yp,zp]=peaks;>>contour(xp,yp,zp,15,'k')>>holdon>>pcolor(xp,yp,zp)>>shadinginterp>>holdoff>>axisoff>>text(-1.2,-4,'伪彩色图')>>subplot('position',[0.72,0.5,0.25,0.3])>>sphere(25);>>axisequal,axis([-0.75,0.75,-0.75,0.75,-0.75,0.75])>>light('Position',[132]);>>light('Position',[-3-13]);>>materialshiny>>axisoff>>text(-0.8,-0.7,-1,'三维图')>>subplot('position',[0.45,0.15,0.5,0.25])>>t=0:pi/15:pi;>>y=sin(4*t).*sin(t)/2;>>plot(t,y,'-bs','LineWidth',2,...%设置线型'MarkerEdgeColor','k',...%设置标记点边缘颜色'MarkerFaceColor','y',...%设置标记点填充颜色'MarkerSize',5)>>axis([0,3.14,-0.5,0.5])>>xlabel('带标记点的线图')>>subplot('position',[0.1,0.9,0.8,0.1])>>text(0.25,0.2,'多窗口绘图示例',...>>'fontsize',25,'fontname','隶书','color','b')>>axisoff6.8用[c,hc]=contour(peaks(30))语句绘制双峰曲面的等高线图,通过控制图形句柄的方法将第四条等高线加粗为2磅,将第六条等高线表示为虚线,在第十条等高线上加星号标记>>[c,hc]=contour(peaks(30));>>set(hc(4),'linewidth',2)>>set(hc(6),'edgecolor',[1,0.8,0],'linestyle',':')>>set(hc(10),'marker','*')6.9做一个花瓶,如图示。(提示:做一个旋转体表面,调入一幅图像对该表面进行彩绘,即用图像的色图索引作为表面体的色图索引)>>t=(0:20)/20;>>r=sin(2*pi*t)+2;>>[x,y,z]=cylinder(r,40);%产生旋转体表面的三维数据>>cx=imread('flowers.tif');%读取名为flowers.tif的图象文件>>[c,map]=rgb2ind(cx,256);%真彩色图转换为索引图(若读入的是索引图,不需转换)>>c1=double(c)+1;%把unit8编址图象数据变换为双精度格式>>surface(x,y,z,'Cdata',flipud(c1),'FaceColor','texturemap',...'EdgeColor','none','CDataMapping','direct','Ambient',...0.6,'diffuse',0.8,'speculars',0.9)%通过属性设置,进行彩绘。>>colormap(map)%使用图象的色图>>view(-50,10)>>axisoff6.10用图形窗口功能在图形窗口中的任意位置产生多个大小不等的子窗口,与6.7题结果进行比较。提示:(1)使用figure命令创建一个新的图形窗口;(2)在图形窗口的Insert菜单中选择Axes项,鼠标指针由箭头变为十字,按下鼠标左键在图形窗口的任意位置拖曳创建一个坐标轴对象;(3)重复2创建其他坐标轴对象。6.11利用图形窗口的曲线拟合工具,选择不同的拟合方法对给定的数据y=[9,18,21,19,22,25,20,14,12,0]进行曲线拟合,观察不同的拟合效果。提示:(1)使用plot函数绘图;(2)在图形窗口的Tools菜单中选择BasicFitting项,打开曲线拟合工具;(3)选择合适的拟合方法。第7章GUI程序设计7.1GUI开发环境中提供了哪些方便的工具?各有什么用途?在GUI开发环境中提供了下列五个方便的工具:(1)布局编辑器(LayoutEditor)—在图形窗口中创建及布置图形对象(2)几何排列工具(AlignmentTool)—调整各对象之间的相互几何关系和位置(3)属性编辑器(PropertyInspector)—查询并设置对象的属性值(4)对象浏览器(ObjectBrowser)—获得当前MATLAB窗口中图形对象句柄的分级排列(5)菜单编辑器(MenuEditor)—建立和编辑主菜单和图形对象的鼠标右键菜单7.2做一个带按钮的界面,当按动按钮时,在计算机声卡中播放一段音乐。(提示,找一个.wav文件,简单起见可以在windows目录下找一个文件,将其放在当前工作目录下或搜索路径上,当按动“开始”按钮时调入该文件并播放,发声功能由sound函数完成,具体用法请查阅帮助信息)提示:(1)先建立一个静态文本对象作为界面的标题“简单声音播放器”(2)建立一个按钮对象用于启动播放器,callback函数中的内容为[y,f,b]=wavread('loff');%读入声音文件loff.wavsound(y,f,b)%由声卡播放声音(3)再建立一个用于关闭界面的按钮对象,callback函数中的内容为close(gcbf)7.3做一个滑条(滚动条)界面,图形窗口标题设置为GUIDemo:Slider,并关闭图形窗口的菜单条。功能:通过移动中间的滑块选择不同的取值并显示在数字框中,如果在数字框中输入指定范围内的数字,滑块将移动到相应的位置,见下图。提示:(1)在figure的属性浏览器中设置Name为GUIDemo:Slider(2)先建立一个滑条对象,在属性浏览器中设置Max为50,Min为-50;(3)在滑条的两端各放置一个静态文本用于显示最大值和最小值;(4)滑条对象的callback函数中的内容为:val=get(handles.slider1,'value');set(handles.edit1,'string',num2str(val));(5)在滑条上方放置一个文本框,用于显示滑块的位置所指示的数值,也可以在文本框中直接输入数值,callback函数中的内容为:str=get(handles.edit1,'string');set(handles.slider1,'value',str2num(str));7.4用单选框做一个如图所示的界面,通过选择不同的单选框来决定使用不同的色彩图。(1)建立坐标轴对象,用于显示图形;(2)建立建立五个单选框,用于选择不同的色图;(3)callback函数的内容为:functionvarargout=radiobutton1_Callback(h,eventdata,handles,varargin)set(handles.radiobutton1,'value',1)set(handles.radiobutton2,'value',0)set(handles.radiobutton3,'value',0)set(handles.radiobutton4,'value',0)set(handles.radiobutton5,'value',0)colormap(jet)%--------------------------------------------------------------------functionvarargout=radiobutton2_Callback(h,eventdata,handles,varargin)set(handles.radiobutton1,'value',0)set(handles.radiobutton2,'value',1)set(handles.radiobutton3,'value',0)set(handles.radiobutton4,'value',0)set(handles.radiobutton5,'value',0)colormap(hsv)%--------------------------------------------------------------------functionvarargout=radiobutton3_Callback(h,eventdata,handles,varargin)set(handles.radiobutton1,'value',0)set(handles.radiobutton2,'value',0)set(handles.radiobutton3,'value',1)set(handles.radiobutton4,'value',0)set(handles.radiobutton5,'value',0)colormap(hot)%--------------------------------------------------------------------functionvarargout=radiobutton4_Callback(h,eventdata,handles,varargin)set(handles.radiobutton1,'value',0)set(handles.radiobutton2,'value',0)set(handles.radiobutton3,'value',0)set(handles.radiobutton4,'value',1)set(handles.radiobutton5,'value',0)colormap(pink)%--------------------------------------------------------------------functionvarargout=radiobutton5_Callback(h,eventdata,handles,varargin)set(handles.radiobutton1,'value',0)set(handles.radiobutton2,'value',0)set(handles.radiobutton3,'value',0)set(handles.radiobutton4,'value',0)set(handles.radiobutton5,'value',1)colormap(copper)7.5制作一个曲面光照效果的演示界面,如图所示,三个弹出式菜单分别用于选择曲面形式、色彩图、光照模式和反射模式,三个滚动条用于确定光源的位置,一个按钮用于退出演示。提示:(1)建立一个静态文本,用于显示界面的标题:光照效果演示;(2)建立坐标轴对象,用于显示图形;(3)建立四个下拉菜单,分别用于选择绘图表面的形状、色图、光照模式和反射模式,每个下拉菜单的上方都有一个静态文本用于说明菜单的作用;(4)在一个frame上建立三个滑条用于确定光源的位置,并在frame上方加一说明;(5)建立一个按钮用于退出演示;(6)callback函数的内容为:functionvarargout=pushbutton1_Callback(h,eventdata,handles,varargin)delete(handles.figure1)%--------------------------------------------------------------------functionvarargout=popupmenu1_Callback(h,eventdata,handles,varargin)val=get(h,'value');switchvalcase1surf(peaks);case2sphere(30);case3membranecase4[x,y]=meshgrid(-4:.1:4);r=sqrt(x.^2+y.^2)+eps;z=sinc(r);surf(x,y,z)case5[x,y]=meshgrid([-1.5:.3:1.5],[-1:0.2:1]);z=sqrt(4-x.^2/9-y.^2/4);surf(x,y,z);case6t=0:pi/12:3*pi;r=abs(exp(-t/4).*sin(t));[x,y,z]=cylinder(r,30);surf(x,y,z);endshadinginterplight('Position',[-3-21]);axisoff%--------------------------------------------------------------------functionvarargout=radiobutton1_Callback(h,eventdata,handles,varargin)set(h,'value',1)set(handles.radiobutton2,'value',0)set(handles.radiobutton3,'value',0)set(handles.radiobutton4,'value',0)lightingflat%--------------------------------------------------------------------functionvarargout=radiobutton2_Callback(h,eventdata,handles,varargin)set(h,'value',1)set(handles.radiobutton1,'value',0)set(handles.radiobutton3,'value',0)set(handles.radiobutton4,'value',0)lightinggouraud%--------------------------------------------------------------------functionvarargout=radiobutton3_Callback(h,eventdata,handles,varargin)set(h,'value',1)set(handles.radiobutton1,'value',0)set(handles.radiobutton2,'value',0)set(handles.radiobutton4,'value',0)lightingphong%--------------------------------------------------------------------functionvarargout=radiobutton4_Callback(h,eventdata,handles,varargin)set(h,'value',1)set(handles.radiobutton1,'value',0)set(handles.radiobutton3,'value',0)set(handles.radiobutton3,'value',0)lightingnone%--------------------------------------------------------------------functionvarargout=popupmenu2_Callback(h,eventdata,handles,varargin)val=get(h,'value');switchvalcase1colormap(jet)case2colormap(hot)case3colormap(cool)case4colormap(copper)case5colormap(pink)case6colormap(spring)case7colormap(summer)case8colormap(autumn)case9colormap(winter)end%--------------------------------------------------------------------functionvarargout=popupmenu3_Callback(h,eventdata,handles,varargin)val=get(h,'value');switchvalcase1lightingflatcase2lightinggouraudcase3lightingphongcase4lightingnoneend%--------------------------------------------------------------------functionvarargout=popupmenu4_Callback(h,eventdata,handles,varargin)val=get(h,'value');switchvalcase1materialshinycase2materialdullcase3materialmetalcase4materialdefaultend%--------------------------------------------------------------------functionvarargout=slider1_Callback(h,eventdata,handles,varargin)val=get(h,'value');set(handles.edit1,'string',num2str(val));lx==val;ly=get(handles.slider2,'value');ly=get(handles.slider3,'value');light('Position',[xyz]);%--------------------------------------------------------------------functionvarargout=edit1_Callback(h,eventdata,handles,varargin)str=get(h,'string');set(handles.slider1,'value',str2num(str));lx==str2num(str);ly=get(handles.slider2,'value');ly=get(handles.slider3,'value');light('Position',[xyz]);%--------------------------------------------------------------------functionvarargout=slider2_Callback(h,eventdata,handles,varargin)val=get(h,'value');set(handles.edit2,'string',num2str(val));lx=get(handles.slider1,'value');lx==val;ly=get(handles.slider3,'value');light('Position',[xyz]);%--------------------------------------------------------------------functionvarargout=edit2_Callback(h,eventdata,handles,varargin)str=get(h,'string');set(handles.slider2,'value',str2num(str));%--------------------------------------------------------------------functionvarargout=slider3_Callback(h,eventdata,handles,varargin)val=get(h,'value');set(handles.edit3,'string',num2str(val));%--------------------------------------------------------------------functionvarargout=edit3_Callback(h,eventdata,handles,varargin)str=get(h,'string');set(handles.slider3,'value',str2num(str));7.6创建一个用于绘图参数选择的菜单对象PlotOption,其中包含三个选项LineStyle、Marker和Color,每个选项下面又包含若干的子项分别可以进行选择图线的类型、标记点的类型和颜色。提示:(1)打开菜单编辑器,建立第一级菜单项PlotOption;(2)在PlotOption菜单项下面建立第二级子菜单项LineStyle、Marker和Color;(3)在第二级菜单项下面分别建立第三级子菜单项。7.7建立三个输入窗口的输入对话框,如图所示。输入命令或程序:prompt={'输入姓名','输入年龄','输入职业'};title='信息登记';lines=[111]';def={'张平','3','教师'};answer=inputdlg(prompt,title,lines,def);第8章M文件编程8.1命令文件与函数文件的主要区别是什么?(1)命令文件是一系列命令的组合,函数文件的第一行必须用function说明;(2)命令文件没有输入参数,也不用返回参数,函数文件可以接受输入参数,也可以返回参数;(3)命令文件处理的变量为工作空间变量,函数文件处理的变量为函数内部的局部变量,也可以处理全局变量。8.2如何定义全局变量?用关键字global可以把一个变量定义为全局变量,在M文件中定义全局变量时,如果在当前工作空间已经存在了相同的变量,系统将会给出警告,说明由于将该变量定义为全局变量,可能会使变量的值发生改变,为避免发生这种情况,应该在使用变量前先将其定义为全局变量。8.3如果x是一个结构型数组,如何观察其中的内容?结果数组用于存储一组相关的数据元素(域),这些元素可以是不同类型、不同尺寸的,结构数组不能用数组编辑器观察和修改其中的元素。对于明为x的结构型数组,可以直接键入x以观察其中所包含的域名及内容,也可以键入x.域名观察指定域名的内容,例如>>xx=name:'line'color:'red'data:[12.700035.90008.400012.200016.600018.800026.2000]>>x.colorans=red8.4if语句有几种表现形式?(1)if表达式语句体end(2)if表达式语句体1else语句体2end(3)if表达式1语句体1elseif表达式2语句体2end(4)if表达式1语句体1elseif表达式2语句体2else语句体3end8.5说明break语句和return语句的用法。break语句用于终止for循环和while循环的执行。如果遇到break语句,则退出循环体,继续执行循环体外的下一行语句。在嵌套循环中,break只存在于最内层的循环中。return语句用于终止当前的命令序列,并返回到调用的函数或键盘,也用于终止keyboad方式,在MATLAB中,被调用的函数运行结束后会自动返回调用函数,使用return语句时将return插入被调用函数的某一位置,根据某种条件迫使被调用函数提前结束并返回调用函数。8.6有一周期为4的正弦波上叠加了方差为0.1的正态分布的随机噪声的信号,用循环结构编制一个三点线性滑动平均的程序。(提示:①用0.1*randn(1,n)产生方差为0.1的正态分布的随机噪声;②三点线性滑动平均就是依次取每三个相邻数的平均值作为新的数据,如x1(2)=(x(1)+x(
本文档为【matlab课后习题及答案详解】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
夕夕资料
拥有专业强大的教研实力和完善的师资团队,专注为用户提供合同简历、论文写作、PPT设计、计划书、策划案、各类模板等,同时素材和资料部分来自网络,仅供参考.
格式:doc
大小:1MB
软件:Word
页数:0
分类:互联网
上传时间:2021-03-29
浏览量:11