当前位置首页 > 建筑/施工 > 施工组织
搜柄,搜必应! 快速导航 | 使用教程  [会员中心]

matlab习题及答案

文档格式:DOC| 40 页|大小 1.04MB|积分 10|2022-11-05 发布|文档ID:167803870
第1页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 40
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • 第1章 MATLAB概论1.1 与其他计算机语言相比较,MATLAB语言突出的特点是什么?MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点1.2 MATLAB系统由那些部分组成?MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。

    1.5 如何启动M文件编辑/调试器?在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动在命令窗口中键入edit命令时也可以启动M文件编辑/调试器1.6 存储在工作空间中的数组能编辑吗?如何操作?存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途?命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上1.9 在MATLAB中有几种获得帮助的途径?在MATLAB中有多种获得帮助的途径:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器;(2)help命令:在命令窗口键入“help” 命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息;(3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数(4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数。

    注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息第2章 MATLAB矩阵运算基础2.1 在MATLAB中如何建立矩阵,并将其赋予变量a?>> a=[5 7 3;4 9 1]2.2 有几种建立矩阵的方法?各有什么优点?可以用四种方法建立矩阵:①直接输入法,如a=[2 5 7 3],优点是输入方法方便简捷;②通过M文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改;③由函数建立,如y=sin(x),可以由MATLAB的内部函数建立一些特殊矩阵;④通过数据文件建立,该方法可以调用由其他软件产生数据2.3 在进行算术运算时,数组运算和矩阵运算各有什么要求?进行数组运算的两个数组必须有相同的尺寸进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a与b相乘(a*b)时必须满足a的列数等于b的行数2.4 数组运算和矩阵运算的运算符有什么区别?在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b为矩阵乘,a.*b为数组乘2.5 计算矩阵与之和>> a=[5 3 5;3 7 4;7 9 8];>> b=[2 4 2;6 7 9;8 3 6];>> a+bans = 7 7 7 9 14 13 15 12 142.6 求的共轭转置。

    >> x=[4+8i 3+5i 2-7i 1+4i 7-5i;3+2i 7-6i 9+4i 3-9i 4+4i]; >> x’ans = 4.0000 - 8.0000i 3.0000 - 2.0000i 3.0000 - 5.0000i 7.0000 + 6.0000i 2.0000 + 7.0000i 9.0000 - 4.0000i 1.0000 - 4.0000i 3.0000 + 9.0000i 7.0000 + 5.0000i 4.0000 - 4.0000i2.7 计算与的数组乘积>> a=[6 9 3;2 7 5];>> b=[2 4 1;4 6 8];>> a.*bans = 12 36 3 8 42 402.8 “左除”与“右除”有什么区别?在通常情况下,左除x=a\b是a*x=b的解,右除x=b/a是x*a=b的解,一般情况下,a\b¹b/a2.9 对于,如果,,求解X>> A=[4 9 2;7 6 4;3 5 7];>> B=[37 26 28]’;>> X=A\BX = -0.5118 4.0427 1.33182.10 已知:,分别计算a的数组平方和矩阵平方,并观察其结果。

    >> a=[1 2 3;4 5 6;7 8 9];>> a.^2ans = 1 4 9 16 25 36 49 64 81>> a^2ans = 30 36 42 66 81 96 102 126 1502.11 ,,观察a与b之间的六种关系运算的结果>> a=[1 2 3;4 5 6];>> b=[8 –7 4;3 6 2];>> a>bans = 0 1 0 1 0 1>> a>=bans = 0 1 0 1 0 1>> a> a<=bans = 1 0 1 0 1 0>> a==bans = 0 0 0 0 0 0>> a~=bans = 1 1 1 1 1 12.12 ,在进行逻辑运算时,a相当于什么样的逻辑量。

    相当于a=[1 1 0 1 1]2.13 在sin(x)运算中,x是角度还是弧度?在sin(x)运算中,x是弧度,MATLAB规定所有的三角函数运算都是按弧度进行运算2.14 角度,求x的正弦、余弦、正切和余切>> x=[30 45 60];>> x1=x/180*pi;>> sin(x1)ans = 0.5000 0.7071 0.8660>> cos(x1)ans = 0.8660 0.7071 0.5000>> tan(x1)ans = 0.5774 1.0000 1.7321>> cot(x1)ans = 1.7321 1.0000 0.57742.15 用四舍五入的方法将数组[2.4568 6.3982 3.9375 8.5042]取整>> b=[2.4568 6.3982 3.9375 8.5042];>> round(b)ans = 2 6 4 92.16 矩阵,分别对a进行特征值分解、奇异值分解、LU分解、QR分解及Chollesky分解>> [v,d]=eig(a,b)v = -0.4330 -0.2543 -0.1744 -0.5657 0.9660 -0.6091 -0.7018 0.0472 0.7736d = 13.5482 0 0 0 4.8303 0 0 0 3.6216>> a=[9 1 2;5 6 3;8 2 7];>> [u,s,v]=svd(a)u = -0.5601 0.5320 -0.6350 -0.4762 -0.8340 -0.2788 -0.6779 0.1462 0.7204s = 15.5234 0 0 0 4.5648 0 0 0 3.3446v = -0.8275 0.3917 -0.4023 -0.3075 -0.9156 -0.2592 -0.4699 -0.0907 0.8781>> [l,u]=lu(a)l = 1.0000 0 0 0.5556 1.0000 0 0.8889 0.2041 1.0000u = 9.0000 1.0000 2.0000 0 5.4444 1.8889 0 0 4.8367>> [q,r]=qr(a)q = -0.6903 0.3969 -0.6050 -0.3835 -0.9097 -0.1592 -0.6136 0.1221 0.7801r = -13.0384 -4.2183 -6.8260 0 -4.8172 -1.0807 0 0 3.7733>> c=chol(a)c = 3.0000 0.3333 0.6667 0 2.4267 1.1447 0 0 2.29032.17 将矩阵、和组合成两个新矩阵:(1)组合成一个4´3的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即 (2)按照a、b、c的列顺序组合成一个行矢量,即 >> a=[4 2;5 7]; >> b=[7 1;8 3]; >> c=[5 9;6 2];% (1) >> d=[a(:) b(:) c(:)] d = 4 7 5 5 8 6 2 1 9 7 3 2% (2) >> e=[a(:);b(:);c(:)]' e = 4 5 2 7 7 8 1 3 5 6 9 2 或利用(1)中产生的d >> e=reshape(d,1,12) ans = 4 5 2 7 7 8 1 3 5 6 9 2第3章 数值计算基础3.1 将(x-6)(x-3)(x-8)展开为系数多项式的形式。

    >> a=[6 3 8]; >> pa=poly(a); >> ppa=poly2sym(pa) ppa = x^3-17*x^2+90*x-1443.2 求解多项式x3-7x2+2x+40的根 >> r=[1 -7 2 40]; >> p=roots(r); -0.2151 0.4459 0.7949 0.27073.3 求解在x=8时多项式(x-1)(x-2) (x-3)(x-4)的值 >> p=poly([1 2 3 4]); >> polyvalm(p,8) ans = 8403.4 计算多项式乘法(x2+2x+2)(x2+5x+4) >> c=conv([1 2 2],[1 5 4]) c = 1 7 16 18 83.5 计算多项式除法(3x3+13x2+6x+8)/(x+4) >> d=deconv([3 13 6 8],[1 4]) d = 3 1 23.6 对下式进行部分分式展开: >> a=[1 3 4 2 7 2]; >> b=[3 2 5 4 6]; >> [r,s,k]=residue(b,a) r = 1.1274 + 1.1513i 1.1274 - 1.1513i -0.0232 - 0.0722i -0.0232 + 0.0722i 0.7916 s = -1.7680 + 1.2673i -1.7680 - 1.2673i 0.4176 + 1.1130i 0.4176 - 1.1130i -0.2991 k = []3.7 计算多项式的微分和积分。

    >> p=[4 –12 –14 5]; >> pder=polyder(p); >> pders=poly2sym(pder) >> pint=polyint(p); >> pints=poly2sym(pint) pders = 12*x^2-24*x-14 pints = x^4-4*x^3-7*x^2+5*x3.8 解方程组 >> a=[2 9 0;3 4 11;2 2 6]; >> b=[13 6 6]'; >> x=a\b x = 7.4000 -0.2000 -1.40003.9 求欠定方程组的最小范数解 >> a=[2 4 7 4;9 3 5 6]; >> b=[8 5]'; >> x=pinv(a)*b x = -0.2151 0.4459 0.7949 0.27073.10 有一组测量数据如下表所示,数据具有y=x2的变化趋势,用最小二乘法求解yx11.522.533.544.55y-1.42.735.98.412.216.618.826.2 >> x=[1 1.5 2 2.5 3 3.5 4 4.5 5]' >> y=[-1.4 2.7 3 5.9 8.4 12.2 16.6 18.8 26.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=[4 2 -6;7 5 4 ;3 4 9]; >> ad=det(a) >> ai=inv(a) ad = -64 ai = -0.4531 0.6562 -0.5937 0.7969 -0.8437 0.9062 -0.2031 0.1562 -0.09373.12 y=sin(x),x从0到2p,Dx=0.02p,求y的最大值、最小值、均值和标准差 >> x=0:0.02*pi:2*pi; >> y=sin(x); >> ymax=max(y) >> ymin=min(y) >> ymean=mean(y) >> ystd=std(y) ymax = 1 ymin = -1 ymean = 2.2995e-017 ystd = 0.70713.13 ,,计算x的协方差、y的协方差、x与y的互协方差 >> x=[1 2 3 4 5]; >> y=[2 4 6 8 10]; >> cx=cov(x) >> cy=cov(y) >> cxy=cov(x,y) cx = 2.5000 cy = 10 cxy = 2.5000 5.0000 5.0000 10.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) >> hold on >> quiver(x,y,px,py) >> hold off3.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和symssym用于创建一个符号变量或表达式,用法如x=sym(‘x’) 及 f=sym(‘x+y+z’),syms用于创建多个符号变量,用法如syms x y z。

    f=sym(‘x+y+z’)相当于 syms x y z f= 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(j1)cos(j2)-cos(j1)sin(j2) =sin(j1-j2) >> syms phi1 phi2; >> y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2)) y = sin(phi1-phi2)4.5 求矩阵的行列式值、逆和特征根。

    >> syms a11 a12 a21 a22; >> A=[a11,a12;a21,a22] >> AD=det(A) % 行列式 >> AI=inv(A) % 逆 >> AE=eig(A) % 特征值 A = [ a11, a12] [ a21, a22] AD = a11*a22-a12*a21 AI = [ -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 因式分解: >> syms x; >> 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。

    >> syms a x; >> 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/b S.y= -c*(a*c+b^2)/b^34.9 符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为[0,2p] >> syms t >> ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),[0,pi]) 4.10 绘制极坐标下sin(3*t)*cos(t)的图形 >> syms t >> 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=[3 6 9 6;6 7 7 4;7 3 2 3;4 2 5 2;2 4 8 7;8 7 4 4];>> bar(y)>> bar(y,’stack’)5.6 x= [66 49 71 56 38],绘制饼图,并将第五个切块分离出来 >> x=[66 49 71 56 38]; >> L=[0 0 0 0 1]; >> 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), shading interp >> title('surf (x,y,z), shading interp')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),hidden off >> surf(x,y,z) >> z(18:30,1:5)=NaN*ones(13,5); >> surf(x,y,z)5.10 将5.9题中的带剪孔的球形表面图的坐标改变为正方形,以使球面看起来是圆的而不是椭圆的,然后关闭坐标轴的显示 axis square axis off第6章 高级图形处理功能6.1 轴对象是使用的最多的图形对象之一,那么轴对象是哪个对象的子对象,又是那些对象的父对象? 轴对象是图形窗口对象的子对象,是图像、灯光、线、块、矩形、表面、字的父对象6.2 什么是图形句柄?图形句柄有什么用途? 图形句柄是每个图形对象从产生时起就被赋予的一个唯一的标识。

    利用图形句柄既可以操纵一个已经存在的图形对象的属性,也可以在建立图形对象时指定属性的值,特别是对指定对象句柄的操作不会影响同时存在的其他对象,这是非常有用的6.3 如何设置和获取指定句柄对象的属性值?一图形窗口对象的句柄为h,先查询该窗口对象可以设置的各种属性,再将窗口的灰色背景设置为白色背景 (1)利用set(句柄,‘属性名称’,属性值)语句可以设置指定对象的属性,get(句柄,‘属性名称’)语句可以获得指定对象的属性2)>> set(h) Alphamap BackingStore: [ {on} | off ] CloseRequestFcn: string -or- function handle -or- cell array Color Colormap CurrentAxes CurrentCharacter CurrentObject …… 从列出的属性内容可以看到,设置背景颜色的属性名为Color,因此>> set(h,’color’,’w’)即可将图形窗口的背景色改为白色6.4 已知三维图形视角的缺省值是方位角为-37.5°,仰角为30°,将观察点顺时针旋转20°角的命令是什么?>> view(-57.5,30)6.5画一双峰曲面(peaks)图,加灯光light,改变光源的位置观察图形的变化。

    >> surf(peaks)>> shading interp>> lighting phong>> light('Position',[-3 -2 1]);>> light('Position',[-1 0 1]);6.6 在双峰曲面上改变不同的光照模式,观察效果>> surf(peaks)>> shading interp>> light('Position',[-3 -2 1]);>> lighting flat>> lighting gouraud>> lighting phong>> lighting none6.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')>> hold on>> pcolor(xp,yp,zp)>> shading interp>> hold off>> axis off>> text(-1.2,-4,'伪彩色图')>> subplot('position',[0.72,0.5,0.25,0.3])>> sphere(25);>> axis equal,axis([-0.75,0.75,-0.75,0.75,-0.75,0.75])>> light('Position',[1 3 2]);>> light('Position',[-3 -1 3]);>> material shiny>> axis off>> 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')>> axis off6.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)>> axis off6.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菜单中选择Basic Fitting项,打开曲线拟合工具;(3)选择合适的拟合方法 第7章 GUI程序设计7.1 GUI开发环境中提供了哪些方便的工具?各有什么用途?在GUI开发环境中提供了下列五个方便的工具:(1)布局编辑器(Layout Editor)—在图形窗口中创建及布置图形对象(2)几何排列工具(Alignment Tool)—调整各对象之间的相互几何关系和位置(3)属性编辑器(Property Inspector)—查询并设置对象的属性值(4)对象浏览器(Object Browser)—获得当前MATLAB窗口中图形对象句柄的分级排列(5)菜单编辑器(Menu Editor)—建立和编辑主菜单和图形对象的鼠标右键菜单7.2 做一个带按钮的界面,当按动按钮时,在计算机声卡中播放一段音乐。

    提示,找一个.wav文件,简单起见可以在windows目录下找一个文件,将其放在当前工作目录下或搜索路径上,当按动“开始”按钮时调入该文件并播放,发声功能由sound函数完成,具体用法请查阅帮助信息)提示:(1)先建立一个静态文本对象作为界面的标题“简单声音播放器”(2)建立一个按钮对象用于启动播放器,callback函数中的内容为 [y,f,b]=wavread('loff'); % 读入声音文件loff.wav sound(y,f,b) % 由声卡播放声音(3)再建立一个用于关闭界面的按钮对象,callback函数中的内容为 close(gcbf)7.3 做一个滑条(滚动条)界面,图形窗口标题设置为GUI Demo: Slider,并关闭图形窗口的菜单条功能:通过移动中间的滑块选择不同的取值并显示在数字框中,如果在数字框中输入指定范围内的数字,滑块将移动到相应的位置,见下图 提示:(1)在figure的属性浏览器中设置Name为GUI Demo: 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函数的内容为:function varargout = 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)% --------------------------------------------------------------------function varargout = 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)% --------------------------------------------------------------------function varargout = 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)% --------------------------------------------------------------------function varargout = 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)% --------------------------------------------------------------------function varargout = 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函数的内容为:function varargout = pushbutton1_Callback(h, eventdata, handles, varargin)delete(handles.figure1)% --------------------------------------------------------------------function varargout = popupmenu1_Callback(h, eventdata, handles, varargin)val=get(h,'value');switch valcase 1 surf(peaks);case 2 sphere(30);case 3 membranecase 4 [x,y]=meshgrid(-4:.1:4); r=sqrt(x.^2+y.^2)+eps; z=sinc(r); surf(x,y,z)case 5 [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);case 6 t=0:pi/12:3*pi; r=abs(exp(-t/4).*sin(t)); [x,y,z]=cylinder(r,30); surf(x,y,z);endshading interplight('Position',[-3 -2 1]);axis off% -----------。

    点击阅读更多内容
    卖家[上传人]:仙人指路
    资质:实名认证