第10章 MATLAB图形对象句柄
习题10
一、选择题
1.MA TLAB图形系统的根对象是指()。A
A.计算机屏幕B.图形窗口
C.坐标轴D.用户界面对象
2.以下不正确的选项是()。D
A.坐标轴是图形窗口对象的子对象
B.图形对象的句柄变量相当于对象名
C.可以通过对象的句柄来设置或获取对象的属性
D.gcf函数可以获取当前对象的句柄
3.使用figure 函数建立图形窗口时,默认的标题是()。C
A.图形窗口n(n是数字)B.Fig n(n是数字)
C.Figure n(n是数字)D.Figure Window n(n是数字)
4.用于决定坐标轴对象是否带边框的属性是()。A
A.Box B.Grid C.Position D.Font 5.下列命令中,除一条命令外其他三条命令等价,这一条命令是()。B
A.line(x,y,'Color','r'); B.line(x,y,'r');
C.plot(x,y,'Color','r'); D.plot(x,y,'r');
6.命令patch([0,1/2,1], [0,tan(pi/3)/2,0], [1,0,0])执行后得到的图形是()。C
A.红色的等腰三角形B.绿色的等腰三角形
C.红色的等边三角形D.白色的四边形
二、填空题
1.H代表一根曲线,要设置曲线的属性可以使用函数,要获取曲线的属性可以使用函数。set(H,属性名,属性值),get(H,属性名)
2.MA TLAB中表示颜色可以用表示,也可以用表示。
字符,RGB三元组
3.用于标识图形对象的属性是属性,可以通过函数获取该属性所对应图形对象的句柄。在屏幕对象及其子对象中查找标识符为ppp的对象,并返回其句柄,可使用命令。Tag,findobj,hf=findobj(0,'Tag','ppp')
4.使用axes 函数可以在中创建对象。当前图形窗口,坐标轴
5.下列命令执行后得到的图形是。要绘制圆,则需要将该图形的属性设置为1。正方形,Curvature
2
>> rectangle('Position',[0,0,30,30])
>> axis equal
三、应用题
1.利用图形对象绘制下列曲线,要求先利用默认属性绘制曲线,然后通过图形句柄操作来改变曲线的颜色、线型和线宽,并利用文字对象给曲线添加文字标注。
(1)x
y sin 15+= (2)5x 1,-5x x y 2≤≤++= (3)???
????≤≤-==22,)2sin(2)cos(t t y t x ππ (4)θρ2sin = 2.利用图形对象绘制下列三维图形。
(1)?????≤≤=-=+=300,5.1)cos (sin 2)sin (cos 2t t
z t t t y t t t x (2)???????≤≤-≤≤-===33,22,22
v u v
z u y u x (3)22e y x xy z --= (4))sin(5),(22xy y x y x f -+=
(1)
t=0:0.1:30;
x=2*(cos(t)+t.*sin(t));
y=2*(sin(t)-t.*cos(t));
z=1.5*t;
axes('view',[-37.5,30]);
line(x,y,z)
axis equal
(2)
u=-2:0.1:2;
v=-3:0.1:3;
[u,v]=meshgrid(u,v);
x=u.*u/2;
y=u;
z=v;
axes('view',[-37.5,30]);
hs=surface(x,y,z);
3.绘制一个长方形,将长方形3等份,每等份分别着不同的颜色。
答案:(错误)
x=[1,2,3;2,3,4;2,3,4;1,2,3];
y=[1,1,1;1,1,1;5,5,5;5,5,5];
mc=jet(4);
c(1,1:4)=mc(1,:);
c(1,1:4)=mc(2,:);
c(1,1:4)=mc(3,:);
patch(x,y,c);
axis([0,5,0,5]);
grid
vert=[1,1;2,1;3,1;4,1;4,5;3,5;2,5;1,5];
fac=[1,2,7,8;2,3,6,7;3,4,5,6];
mc=jet(3);
patch('Faces',fac,'Vertices',vert,'FaceVertexCData',mc,'FaceC olor','Flat');
axis([0,5,0,5]);
grid
4.生成一个长方体,每小面着不同颜色,并进行光照和材质处理。
3
Matlab 基础练习题 常量、变量、表达式 1、 MATLAB 中,下面哪些变量名是合法的?( ) (A )_num (B )num_ (C )num- (D )-num 2、 在MA TLAB 中,要给出一个复数z 的模,应该使用( )函数。 (A )mod(z) (B )abs(z) (C )double(z) (D )angle(z) 3、 下面属于MATLAB 的预定义特殊变量的是?( ) (A )eps (B )none (C )zero (D )exp 4、 判断:在MA TLAB 的内存工作区中,存放一个英文字符 'a' 需要占用1个字节,存放 一个中文字符‘啊’需要占用2个字节。( 错,都是2个字节 ) 5、 判断:MA TLAB 中,i 和j ( 对 ) 6、 判断:MA TLAB 中,pi 代表圆周率,它等于3.14。( 错,后面还有很多位小数 ) 7、 在MA TLAB 中,若想计算的5 1)3.0sin(21+= πy 值,那么应该在MA TLAB 的指令窗中 输入的MA TLAB 指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。 8、 在MA TLAB 中,a = 1,b = i ,则a 占_8__个字节,b 占_16_个字节,c 占________字 节。 9、 在MA TLAB 中,inf 的含义是__无穷大__,nan 的含义是__非数(结果不定)___。 数组 1、 在MA TLAB 中,X 是一个一维数值数组,现在要把数组X 中的所有元素按原来次序 的逆序排列输出,应该使用下面的( )指令。 (A )X[end:1] (B )X[end:-1:1] (C )X (end:-1:1) (D )X(end:1) 2、 在MA TLAB 中,A 是一个字二维数组,要获取A 的行数和列数,应该使用的MATLAB 的命令是( )。 (A )class(A) (B )sizeof(A) (C )size(A) (D )isa(A) 3、 在MATLAB 中,用指令x=1:9生成数组x 。现在要把x 数组的第二和第七个元素都 赋值为0,应该在指令窗中输入( ) (A )x([2 7])=(0 0) (B )x([2,7])=[0,0] (C )x[(2,7)]=[0 0] (D )x[(2 7)]=(0 0) 4、 在MA TLAB 中,依次执行以下指令:clear;A=ones(3,4); A(:)=[-6:5];这时, 若在指令窗中输入指令b=A(:,2)',那么,MATLAB 输出的结果应该是( ) (A )b = -3 -2 -1 (B )b = -2 -1 0 1 (C )b = -5 -1 3 (D )b = -5 -2 1 4 5、 在MA TLAB 中,A = 1:9,现在执行如下指令L1 = ~(A>5),则MATLAB 的执行结果应 该是L1 =___ 1 1 1 1 1 0 0 0 0___。
第1章 MATLAB概论 1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB系统由那些部分组成? MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 页脚内容1
命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到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 概论 1.1 与其他计算机语言相比较,MATLAB 语言突出的特点是什么? MATLAB 具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB 系统由那些部分组成? 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)模糊查询:输入命令的前几个字母,然后按T ab 键,就可以列出所有以这几个字母开始的命令和函数。 注意:lookfor 和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help 命令显示详细信息。 第2章 MATLAB 矩阵运算基础 2.1 在MATLAB 中如何建立矩阵?? ? ???194375,并将其赋予变量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 )
句柄式图形常用函数: (1)get(h)返回句柄值h所指定的图形对象的所有属性名称与相对应的属性值 (2)a = get(h)返回由句柄值h所指定的图形对象的属性结构数组,并且该数组的字段名称就是该对象的属性名称。 (3)a = get(0,'factory')返回所有能由用户设置的属性的默认定义值。 (4)a = get(0,'FactoryObjectTypePropertyName1', 'FactoryObjectTypePropertyName2',...)返回指定对象类型指定的属性值,输入参数FactoryObjectTypePropertyName为一个关键词,由字符Factory与图形对象类型(如Figure)还有属性名称(如Color)组成。 a = get(0,'factoryFigureColor')返回Figure对象的Color属性值。 (5)a = get(h,'DefaultObjectTypePropertyName1', 'DefaultObjectTypePropertyName1',...) 返回句柄值为h的对象指定属性的默认值。如“DefaultFigureColor”。 (6)a = get(h,'default')列出h对象的所有属性的默认属性值 (7)a = set(h)返回句柄值h所指定的图形对象的所有属性名称对应的可设置属性值,a为结构数组,存储对象的属性名称,其字段值为相对应的属性值。属性值中用{}括起来的表示默认值。 (8)set(h,a)使用指定的属性值来设置由句柄值h所指定的对象属性,a为结构数组,其字段名称为对象的属性名称,字段值为相对应的属性值。 (9)a = set(0,'factory')返回那些用户可以设置默认值的所有对象的属性,同时显示可设置的属性值。 (10)a=set(0,'FactoryObjectTypePropertyName')返回所有对象中指定的属性名称FactoryObjectTypePropertyName的所有可能的属性值。 (11)a = set(h,'属性名','属性值')设置句柄值为h的对象的与属性名对应的属性值。 (12) set(h,'DefaultObjectTypePropertyName1','DefaultObjectTypePropertyName2',...)对句柄值为h的对象设置特定属性名称的属性默认值。 (13)H = findobj;返回Root对象与其所有子对象的句柄值 (14)H = findobj(h);返回h变量的句柄值 (15)H = findobj(?属性名称…,?属性值…);依据对象的属性名称和属性值找出匹配的对象句柄值。 (16)H = findobj(ObjectHandles,?属性名称…,?属性值…);根据限定的对象列表找出与对象的属性名称和属性值匹配的对象句柄值 (17)gcf返回当前Figure对象的句柄值 gca返回当前axes对象的句柄值 gco返回当前鼠标单击的句柄值,该对象可以是除root对象外的任意图形对象,并且Matlab会把当前图形对象的句柄值存放在Figure的CurrentObject属性中Figure对象的属性篇
matlab图形句柄属性 句柄式图形常用函数: (1)get(h)返回句柄值h所指定的图形对象的所有属性名称与相对应的属性值 (2)a = get(h)返回由句柄值h所指定的图形对象的属性结构数组,并且该数组的字段名称就是该对象的属性名称。 (3)a = get(0,'factory')返回所有能由用户设置的属性的默认定义值。 (4)a = get(0,'FactoryObjectTypePropertyName1','FactoryObjectTypePropertyName2',...) 返回指定对象类型指定的属性值,输入参数FactoryObjectTypePropertyName为一个关键词,由字符Factory与图形对象类型(如Figure)还有属性名称(如Color)组成。 a = get(0,'factoryFigureColor')返回Figure对象的Color属性值。 (5)a = get(h,'DefaultObjectTypePropertyName1','DefaultObjectTypePropertyName1',...) 返回句柄值为h的对象指定属性的默认值。如“DefaultFigureColor”。 (6)a = get(h,'default')列出h对象的所有属性的默认属性值 (7)a = set(h)返回句柄值h所指定的图形对象的所有属性名称对应的可设置属性值,a为结构数组,存储对象的属性名称,其字段值为相对应的属性值。属性值中用{}括起来的表示默认值。 (8)set(h,a)使用指定的属性值来设置由句柄值h所指定的对象属性,a为结构数组,其字段名称为对象的属性名称,字段值为相对应的属性值。 (9)a = set(0,'factory')返回那些用户可以设置默认值的所有对象的属性,同时显示可设置的属性值。 (10)a=set(0,'FactoryObjectTypePropertyName')返回所有对象中指定的属性名称FactoryObjectTypePropertyName的所有可能的属性值。 (11)a = set(h,'属性名','属性值')设置句柄值为h的对象的与属性名对应的属性值。(12)set(h,'DefaultObjectTypePropertyName1','DefaultObjectTypePropertyName2',...) 对句柄值为h的对象设置特定属性名称的属性默认值。 (13)H = findobj;返回Root对象与其所有子对象的句柄值 (14)H = findobj(h);返回h变量的句柄值 (15)H = findobj(’属性名称‘,’属性值‘);依据对象的属性名称和属性值找出匹配的对象句柄值。 (16)H = findobj(ObjectHandles,’属性名称‘,’属性值‘);根据限定的对象列表找出与对象的属性名称和属性值匹配的对象句柄值 (17)gcf返回当前Figure对象的句柄值 gca返回当前axes对象的句柄值 gco返回当前鼠标单击的句柄值,该对象可以是除root对象外的任意图形对象,并且Matlab 会把当前图形对象的句柄值存放在Figure的CurrentObject属性中。 Figure 对象是指屏幕(root对象)中产生的窗口,并且MATLAB允许用Figure 函数建立任意数目的窗口,但所有的绘图函数,如plot surf等,如果窗口未存在时,会自动建立一个新的窗口;每个窗口则构成一个Figure 对象。
习题: 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 矩阵元素,即 ?? ??? ???? ???237 912685 574 (2)按照a 、b 、c 的列顺序组合成一个行矢量,即 []296531877254 6, 将(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 的最大值、最小值、均值和标准差。(应用max,min,mean,std) 14, 参照课件中例题的方法,计算表达式() 2 2 e 1053y x y x z ---=的梯度并绘图。(应用meshgrid, gradient, contour, hold on, quiver) 15, 用符号函数法求解方程a t 2+b*t +c=0。(应用solve) 16, 用符号计算验证三角等式:(应用syms,simple) 17, 求矩阵?? ? ? ??=2221 1211a a a a A 的行列式值、逆和特征根。(应用syms,det,inv,eig) 18, 因式分解:6555234-++-x x x x (应用syms, factor) 19, ? ??? ?? ?? =)sin()log(12 x x e x x a f ax ,用符号微分求df/dx 。(应用syms,diff) 20, 符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t 的变化范围为[0,2π]。(应用syms,ezplot) 21, 绘制曲线13++=x x y ,x 的取值范围为[-5,5]。(应用plot) 22, 有一组测量数据满足-at e =y ,t 的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,在图中添加标题-at e =y ,并用箭头线标识出各曲线a 的取值,并添加标题-at e =y 和图例框。(应用plot,title,text,legend) 23 24, x= [66 49 71 56 38],绘制饼图,并将第五个切块分离出来。
句柄图形对象
(1) function my_plot x=1:10 y=peaks(10) %Z = peaks(n);returns an n-by-n matrix. cax=newplot %newplot prepares a figure and axes for subsequent graphics commands. %h = newplot prepares a figure and axes for subsequent graphics commands and returns a handle to the current axes. LSO=['- ';'--';': ';'-.'] %此处第一项与第三项要加空格,使得各行元素相等 set(cax,'FontName','Times','FontAngle','italic') %设置图形坐标轴的字体与字体倾斜角度 set(get(cax,'Parent'),'MenuBar','none')%关闭工具栏 line_handles=line(x,y,'Color','b') %将10条曲线利用直线全部画出,并返回直线句柄向量,10条曲线对应10个句柄值 %所以该句柄向量一共有10个元素 style=1 for i=1:length(line_handles) if style>length(LSO)
style=1 end set(line_handles(i),'LineStyle',LSO(style,:)) %设置直线属性 style=style+1 end grid on
MATLAB 考试试题(1) 产生一个1x10的随机矩阵,大小位于(-5 5),并且按照从大到小的顺序排列好!(注:要程序和运行结果的截屏) 答案: a=10*rand(1,10)-5; b=sort(a,'descend') 1.请产生一个100*5的矩阵,矩阵的每一行都是[1 2 3 4 5] 2. 已知变量:A=’ilovematlab’;B=’matlab’, 请找出: (A)B在A中的位置。 (B)把B放在A后面,形成C=‘ilovematlabmatlab’ 3. 请修改下面的程序,让他们没有for循环语句! A=[1 2 3; 4 5 6; 7 8 9]; [r c]=size(A); for i=1:1:r for j=1:1:c if (A(i,j)>8 | A(i,j)<2) A(i,j)=0; end end end 4. 请把变量A=[1 2 3; 4 5 6; 7 8 9]写到文件里(output.xls),写完后文件看起来是这样的 1 2 3 4 5 6 7 8 9 5.试从Yahoo网站上获得微软公司股票的2008年9月的每日收盘价。 6.编写M文件,从Yahoo网站批量读取60000.SH至600005.SH在2008年9月份的每日收盘价(提示:使用字符串函数)。 7. 将金牛股份(000937)2005年12月14日至2006年1月10日的交易记录保存到Excel中,编写程序将数据读入MATLAB中,进一步将数据读入Access数据库文件。 8.已知资产每日回报率为0.0025,标准差为0.0208,资产现在价值为0.8亿,求5%水平下资产的10天在险价值(Var)。 9.a=[1 2 3 4 5],b=a(1)*a(5)+a(2)*a(4)+a(3)*a(3)+a(4)*a(2)+a(5)*a(1).试用MATLAB中最简单的方法计算b,注意最简单哦。
五、某公司投资2000万元建成一条生产线。投产后,在时刻t 的追加成本和追加收益分别为3/225)(t t t G ++=(百万元/年),3/218)(t t H -=(百万元/年)。试确定该生产线在何时停产可获最大利润?最大利润是多少? 提示:利用函数?=T G H t R 0t 20-d ))t (-)t (()((百万元),由于H (t )-G (t )单调 下降,所以H (t )=G (t )时,R (t )取得最大利润。 5.解:构造函数f(t)=H(t)-G(t)=13-t-3t 2/3=0 ; 令t 1/3=x,则f(t)=-t 3-3t 2+13 可得矩阵P=[-1,-3,0,13] 求最佳生产时间的源程序如下: p=[-1,-3,0,13]; x=roots(p); t=x.^3 运行结果如下: t = 3.6768 +21.4316i 3.6768 -21.4316i 4.6465 再分别将t 的三个值带入函数f(t),比较大小后,得到最大利润与最佳生产时间。 求最大利润的程序代码如下: ① t=3.6768 +21.4316i; x=0:0.01:t; y=13-x-3*x.^(2/3); trapz(x,y) 运行结果: ans = 25.2583 ② t=3.6768 -21.4316i; x=0:0.01:t; y=13-x-3*x.^(2/3); trapz(x,y) 运行结果: ans = 25.2583 ③ t=4.6465; x=0:0.01:t; y=13-x-3*x.^(2/3); trapz(x,y) 运行结果: ans = 26.3208 比较以上三组数据,可知最佳生产时间t=4.6465年,可获得的最大利润 26.3208(百万元/年)。 clear; close; fplot('18-t^(2/3)',[0,20]);grid on;hold on; fplot('5+t+2*t^(2/3)',[0,20],'r');hold off; %发现t 约为4
以下各题均要求编程实现,并将程序贴在题目下方。 1.从键盘输入任意个正整数,以0结束,输出那些正整数中的素数。 clc;clear; zzs(1)=input('请输入正整数:');k=1; n=0;%素数个数 while zzs(k)~=0 flag=0;%是否是素数,是则为1 for yz=2:sqrt(zzs(k))%因子从2至此数平方根 if mod(zzs(k),yz)==0 flag=1;break;%非素数跳出循环 end end if flag==0&zzs(k)>1%忽略0和1的素数 n=n+1;sus(n)=zzs(k); end k=k+1; zzs(k)=input('请输入正整数:'); end disp(['你共输入了' num2str(k-1) '个正整数。它们是:']) disp(zzs(1:k-1))%不显示最后一个数0 if n==0 disp('这些数中没有素数!')%无素数时显示 else disp('其中的素数是:') disp(sus) end 2.若某数等于其所有因子(不含这个数本身)的和,则称其为完全数。编程求10000以内所有的完全数。 clc;clear;
wq=[];%完全数赋空数组 for ii=2:10000 yz=[];%ii的因子赋空数组 for jj=2:ii/2 %从2到ii/2考察是否为ii的因子 if mod(ii,jj)==0 yz=[yz jj];%因子数组扩展,加上jj end end if ii==sum(yz)+1 wq=[wq ii];%完全数数组扩展,加上ii end end disp(['10000以内的完全数为:' num2str(wq)])%输出 3.下列这组数据是美国1900—2000年人口的近似值(单位:百万)。 (1)若. 2c + = y+ 与试编写程序计算出上式中的a、b、c; 的经验公式为 t at bt y (2)若.bt 的经验公式为 y= 与试编写程序计算出上式中的a、b; y ae t (3)在一个坐标系下,画出数表中的散点图(红色五角星),c + =2中 ax bx y+拟合曲线图(蓝色实心线),以及.bt y=(黑色点划线)。 ae (4)图形标注要求:无网格线,横标注“时间t”,纵标注“人口数(百万)”,图形标题“美国1900—2000年的人口数据”。 (5)程序中要有注释,将你的程序和作好的图粘贴到这里。 clf;clc;clear %清除图形窗、屏幕、工作空间 t=1900:10:2000; y=[76 92 106 123 132 151 179 203 227 250 281]; p1=polyfit(t,y,2);%二次多项式拟合
【例】水资源系统规划调度常应用系统分析方法处理,以一个水资源分配问题为例,讨论线性规划问题。例:有甲、乙两个水库同时给A、B、C三个城市供水,甲水库的日供水量为28万m3/d,乙水库的日供水量为35万m3/d,三个城市的日需水量分别为A≥10万m3/d,B≥15万m3/d,C≥20 万m3/d。由于水库与各城市的距离不等,输水方式不同,因此单位水费也不同。各单位水费分别为c11=2000元/万m3、c12=3000元/万m3、c13=4000元/万m3、c21=4500元/万m3、c22=3500元/万m3、c23=3000元/万m3。试作出在满足对三个城市供水的情况下,输水费用最小的方案。
设甲水库向三城市日供水量分别为x ll、x12、x13,乙水库向三城市日供水量分别为x2l、x22、x23。 建立约束条件: x11 + x21 ≥10 x12 + x22 ≥15 x13 + x23 ≥20 x11 + x12 + x13 ≤28 x21 + x22 + x23 ≤35 x11,x12,x13,x21,x22,x23,≥0 目标函数: fmin=c11x11+c12x12+c13x13+c21x21+c22x22+c23x23
这样的问题单纯求解是非常繁琐的,而MLTLAB求解是十分简单的,只要在命令行输入: 》f=[0.2 0.3 0.4 0.45 0.35 0.3]’; 》A=[-1 0 0 -1 0 0;0 -1 0 0 -1 0;0 0 -1 0 0 -1;1 1 1 0 0 0; 0 0 0 1 1 1]; 》B=[-10 -15 -20 28 35]; 》lb=zeros(6,1); 》[X,Zmin]=linprog(f,A,B,[],[],lb,[]) 最后得出x=[10 15 0 0 0 20]万m3,Zmin=12.5万元。
MatLab考试题题库(必做题)(带答案) 一, 1.请登陆美国 MathWorks 公司的网站,查看看现在大概有多少本 MATLAB-based books (以MATLAB 为基本软件,来说明各个专业领域的教科书或工具书)。哪一个领域的 MATLAB-based books 最多中文书共有几本 答:1612本,数学方面的最多,中文书共有37本。 2.请在 MATLAB中直接输入下列常数,看它们的值是多少: a.i b.j c.eps d.inf e.nan f.pi g.realmax h.realmin 依次解为:ans = 0 + ans = 0 + ans = ans =Inf ans = NaN ans = ans = +308 ans = 3.试写一函数 regPolygon(n),其功能为画出一个圆心在 (0, 0)、半径为 1 的圆,并在圆内画出一个内接正 n 边形,其中一顶点位于 (0, 1)。例如 regPolygon(8) 可以画出如下之正八边型:
解:新建文件如下: function y=regPolyfon(n) n=8;%要画的n边形 R=1; %圆的半径 t=0::2*pi; x=R*cos(t); y=R*sin(t); m=linspace(pi/2,5/2*pi,n+1); xz=R*cos(m); yz=R*sin(m); hold on plot(x,y,xz,yz);
axis 'equal'; 4.一条参数式的曲线可由下列方程式表示: x = sin(t), y = 1 - cos(t) + t/10 当 t 由 0 变化到 4*pi 时,请写一个 MATLAB 的脚本,画出此曲线在 XY 平面的轨迹。 解:新建: t = linspace(0, 4*pi); x = sin(t); y = 1-cos(t)+t/10; plot(x, y, '-o'); 5.当一个小圆轮沿着一条曲线行进时,轮缘任一点的轨迹就会产生变化丰富的摆线。假设小圆轮的半径 r=2。
例2.1 >> muw0=1.785; >> a=0.03368; >> b=0.000221; >> t=0:20:80; >> muw=muw0./(1+a*t+b*t.^2) 例2.2 数值数组和字符串的转换 >> a=[1:5]; >> b=num2str(a); >> a*2 ans = 2 4 6 8 10 >> b*2 ans = 98 64 64 100 64 64 102 64 64 104 64 64 106 例2.9比较左除和右除求解恰定方程 >> rand('seed',12); >> a=rand(100)+1.e8; >> x=ones(100,1); >> b=a*x; >> cond(a) ans = 5.0482e+011 >> tic;x1=b'/a;t1=toc t1 = 0.4711 >> er1=norm(x-x1') er1 = 139.8326
>> re1=norm(a*x1'-b)/norm(b) re1 = 4.3095e-009 >> tic;x1=a\b;t1=toc t1 = 0.0231 >> tic;x1=a\b;t1=toc t1 = 0.0011 >> er2=norm(x-x1) er2 = 1.5893e-004 >> re1=norm(a*x1-b)/norm(b) re1 = 4.5257e-016 例2.14:计算矩阵的指数 >> b=magic(3); >> expm(b) ans = 1.0e+006 * 1.0898 1.0896 1.0897 1.0896 1.0897 1.0897 1.0896 1.0897 1.0897 例 2.18:特征值条件数
第七章 MATLAB图形句柄 与第四章的高层绘图指令相比,本章的内容更深入MATLAB可视化功能的内核。编写本章的目的有两个:(1)使读者更深入地理解高层绘图指令,从而可绘制出更精细更生动更个性的图形;(2)使读者能利用低层图形指令和图形对象属性开发专用绘图函数。 本章在内容安排上有如下考虑: 保证概念、结构和方法的完整性:由表及里、由浅入深的原则系统阐述句柄图形体系、图形对象、属性和操作方法。 突出要点、新点和难点:句柄图形体系有11个基本图形对象,每个对象的属性少则20几个,多则近百个。对此,MATLAB自带资料有详尽的文字说明。因此,本章只对最常用的、不可或缺的、以及较难掌握的内容进行说明。 强调“可操作性”体现“范例引导概念”的本书宗旨:针对MATLAB自带资料缺少完整、可操作应用实例的弱点,本章设计了部分算例,读者通过阅读或操作这些范例,可掌握各指令、属性之间的有机配合,从而更具体更真切地理解句柄图形。 第一节图形对象及其句柄 MATLAB语言的句柄绘图可以对图形各基本对象进行更为细腻的修饰,可以产生更为复杂的图形,而且为动态图形的制作奠定了基础。 高层绘图与底层绘图的区别 (1)高层绘图函数—是对整个图形进行操作的,图形每一部分的属性都是按缺省方式设置的,充分体现了MATLAB语言的实用性; (2)底层绘图函数—可以定制图形,对图形的每一部分进行控制,用户可以用来开发用户界面以及各专业的专用图形。充分体现了MATLAB语言的开发性。 一、图形对象 MATLAB的图形对象包括计算机屏幕、图形窗口、坐标轴、用户菜单、用户控件、曲线、曲面、文字、图像、光源、区域块和方框等。系统将每一个对象按树型结构组织起来。 例: 河流断面面积计算程序(exam7_1.m)。 a=[13.0000,8.7700,8.7700,4.7700,4.2700,4.6700,4.1700,2.9700,1.7700,1.0700,1 .6700,1.6700,2.5700,4.6700,3.9700,14.7000] %河底高程 x=[0,80,190,245,290,330,400,460,535,580,620,665,730,810,860,890] %起点距 Hf_1=figure('NumberTitle','off','name','断面面积计算','Position',[50,80,700,460]) %图形标题 plot(x,a) %绘断面图 set(gca,'Xdir','Normal','Ydir','Normal','Box','off'); s=input('请输入水位值:'); ss=s-a; sa=length(a) for i=1:sa; if ss(i)<0; sss(i)=0; else sss(i)=ss(i); end
MATLAB考试试题(1) 产生一个 1x10 的随机矩阵,大小位于( -5 5 ),并且按照从大到小的顺序排列好!(注:要程序和运行结果 的截屏) 答案: a=10*rand(1,10)-5; b=sort(a,'descend') 1 .请产生一个 100*5的矩阵,矩阵的每一行都是[12345] 2.已知变量: A= ’ ilovematlab;’B= ’ matlab’请,找出: ( A ) B 在 A 中的位置。 ( B )把 B 放在 A 后面,形成 C=‘ilovematlabmatlab ’ 3.请修改下面的程序,让他们没有for循环语句! A=[123;456;789]; [r c]=size(A); for i=1:1:r for j=1:1:c if (A(i,j)>8 | A(i,j)<2) A(i,j)=0; end end end 4.请把变量 A=[123;456;789]写到文件里 (output.xls),写完后文件看起来是这样的123456789 5.试从 Yahoo 网站上获得微软公司股票的2008年 9 月的每日收盘价。 6.编写 M 文件,从 Yahoo网站批量读取60000.SH至 600005.SH在 2008年 9 月份的每日收盘价(提示:使用字符串函数)。 7.将金牛股份( 000937) 2005年12 月14日至 2006 年1 月10日的交易记录保存到Excel 中,编写程序将数据读入MATLAB 中,进一步将数据读入Access 数据库文件。 8.已知资产每日回报率为0.0025,标准差为 0.0208,资产现在价值为0.8亿,求 5%水平下资产的 10天在险价值 (Var)。 9.a=[1 2 3 4 5],b=a(1)*a(5)+a(2)*a(4)+a(3)*a(3)+a(4)*a(2)+a(5)*a(1).试用 MATLAB 中最简单的方法计算 b ,注意最简单哦。
第10章 MATLAB图形对象句柄 习题10 一、选择题 1.MA TLAB图形系统的根对象是指()。A A.计算机屏幕B.图形窗口 C.坐标轴D.用户界面对象 2.以下不正确的选项是()。D A.坐标轴是图形窗口对象的子对象 B.图形对象的句柄变量相当于对象名 C.可以通过对象的句柄来设置或获取对象的属性 D.gcf函数可以获取当前对象的句柄 3.使用figure 函数建立图形窗口时,默认的标题是()。C A.图形窗口n(n是数字)B.Fig n(n是数字) C.Figure n(n是数字)D.Figure Window n(n是数字) 4.用于决定坐标轴对象是否带边框的属性是()。A A.Box B.Grid C.Position D.Font 5.下列命令中,除一条命令外其他三条命令等价,这一条命令是()。B A.line(x,y,'Color','r'); B.line(x,y,'r'); C.plot(x,y,'Color','r'); D.plot(x,y,'r'); 6.命令patch([0,1/2,1], [0,tan(pi/3)/2,0], [1,0,0])执行后得到的图形是()。C A.红色的等腰三角形B.绿色的等腰三角形 C.红色的等边三角形D.白色的四边形 二、填空题 1.H代表一根曲线,要设置曲线的属性可以使用函数,要获取曲线的属性可以使用函数。set(H,属性名,属性值),get(H,属性名) 2.MA TLAB中表示颜色可以用表示,也可以用表示。 字符,RGB三元组 3.用于标识图形对象的属性是属性,可以通过函数获取该属性所对应图形对象的句柄。在屏幕对象及其子对象中查找标识符为ppp的对象,并返回其句柄,可使用命令。Tag,findobj,hf=findobj(0,'Tag','ppp') 4.使用axes 函数可以在中创建对象。当前图形窗口,坐标轴 5.下列命令执行后得到的图形是。要绘制圆,则需要将该图形的属性设置为1。正方形,Curvature
产生一个1x10的随机矩阵,大小位于(-5 5),并且按照从大到小的顺序排列好!(注:要程序和运行结果的截屏) 答案: a=10*rand(1,10)-5; b=sort(a,'descend') 1.请产生一个100*5的矩阵,矩阵的每一行都是[1 2 3 4 5] 2. 已知变量:A=’ilovematlab’;B=’matlab’, 请找出: (A) B在A中的位置。 (B)把B放在A后面,形成C=‘ilovematlabmatlab’ 3. 请修改下面的程序,让他们没有for循环语句! A=[1 2 3; 4 5 6; 7 8 9]; [r c]=size(A); for i=1:1:r for j=1:1:c if (A(i,j)>8 | A(i,j)<2) A(i,j)=0; end end end 4. 请把变量A=[1 2 3; 4 5 6; 7 8 9]写到文件里,写完后文件看起来是这样的 1 2 3 4 5 6 7 8 9 5.试从Yahoo网站上获得微软公司股票的2008年9月的每日收盘价。 6.编写M文件,从Yahoo网站批量读取至在2008年9月份的每日收盘价(提示:使用字符串函数)。 7. 将金牛股份(000937)2005年12月14日至2006年1月10日的交易记录保存到Excel中,编写程序将数据读入MATLAB中,进一步将数据读入Access数据库文件。 8.已知资产每日回报率为,标准差为,资产现在价值为亿,求5%水平下资产的10天在险价值(Var)。 =[1 2 3 4 5],b=a(1)*a(5)+a(2)*a(4)+a(3)*a(3)+a(4)*a(2)+a(5)*a(1).试用MATLAB中最简单的方法计算b,注意最简单哦。 1、求下列联立方程的解 3x+4y-7z-12w=4