nbhkdz.com冰点文库

Matlab工程应用基础_4_3精讲_图文

时间:2018-10-10

第4章 Matlab的图形功能
七、图形对象的有关概念 图形用户界面( Graphic User Interface)是指包含图形对 象的用户界面,是MATLAB句柄图形系统的子系统。它 包含两类图形对象:一是用户界面控件对象( Uicontrol); 一是用户界面菜单对象( Uimenu)。 1.句柄图形 ?句 柄 图 形 ( Handle Graphics) 是 一 种 面 向 对 象 ( Object-Oriented)的绘图系统概念,它提供了创建计算 机图形所必须的各种软件,所支持的指令可以直接创建线、 文字、面以及图形用户界面。 ?句柄图形基于这样的概念:一幅图的每一个组成部分都 是 一 个 对 象 ( Object), 每 一 个 对 象 有 一 系 列 句 柄 ( Handle)和它相关。

第4章 Matlab的图形功能
2.图形对象和句柄图形的结构层次 ? 图形对象包括图形窗口或者图形,还有坐标系、线条、 曲面、文本等。这些对象按父对象和子对象组成 MATLAB 图形体系的层次结构。 ? 每个图形对象都由若干可以被独立操作的对象构成,它 不必包含全部对象,但是必须具备根屏幕( Root)和图 形窗( Figure)。 ? 每个父对象可以包含一个或多个子对象。除了控件对象 ( Uicontrol)和菜单对象( Uimenu)外,所有的对象 都是坐标轴的子对象,并且在这些坐标轴上显示。所有 创建对象的函数当父对象不存在时,都会创建它们。

第4章 Matlab的图形功能

句柄图形体系的对象层次结构图

第4章 Matlab的图形功能
3.对象句柄 ? 句柄( Handle)是分配给每一个对象的数字标识( Identifier),每创建一个对象时,就为它建立一个惟一 的句柄。句柄是存取图形对象的惟一规范识别符,不同 对象的句柄不可能重复和混淆。 ? 每台计算机的根对象是根屏幕(Root),其句柄总是数 字0;而图形窗口( Figure )的句柄总是正整数,用它 来标识图形窗的序号。除根对象和图对象外,其余对象 的句柄则是双精度浮点数。 ? 除了根对象外,所有的对象都由与之相对应的内置函数 ( Build-in Function)创建,每个函数在创建对象的同 时,还可以返回该对象的句柄 h。

第4章 Matlab的图形功能
创建图形对象的底层函数

第4章 Matlab的图形功能
有一些函数可以用来获取对象的句柄。

获取图形对象句柄的函数

第4章 Matlab的图形功能
4. 图形对象的操作 在获取图形句柄后,即可对图形对象进行各种操作。 a. 删除图形对象的delete 命令 调用格式为: delete(h)

该命令可以删除句柄 h 所指的对象及其所有的子对象。
例如 delete(gca)将删除当前轴和它所有的子对象。 由于该命令不提供确认、直接执行,用户在使用时应谨慎 进行。

第4章 Matlab的图形功能
b. 函数 findobj 快速地遍历对象层,并获取指定属性的对象句柄。
调用方式如下: ? h=findobj(’propertyname’,propertyvalue,…):在所有的对象层中查 找符合指定属性值的对象,返回句柄值h; ? h=findobj(ObjectHandle ,'propertyname',propertyvalue,…):查找 范围限制在句柄“ ObjectHandle”指定的对象及其子对象中; ? h=findobj(ObjectHandles,'flat', 'propertyname',propertyvalue,…): 把查找的范围限制在句柄 “ ObjectHandle”指定的对象中,但不包 括其子对象; ? h=findobj:返回根对象和所有子对象的句柄值; ? h=findobj(ObjectHandles):返回“ ObjectHandle”指定的对象和其 所有子对象的句柄值。

第4章 Matlab的图形功能
创建一个图形对象,并寻求图形对象的句柄值。
mesh(peaks(30)); %创建山峰的网格图 text(30,20,2,'\leftarrowpeak') %给图形对象加上文本,图形对象中包括坐标轴、线条和 文本标注 h=findobj(gcf) %求当前图形窗口的句柄 h= %返回句柄值赋予变量 1.0000 99.0010 101.0006 100.0016

句柄中的元素排列顺序决定于各个对 象在整个对象层次结构中的位置。 h(1)=1 为图形对象( Figure)的句柄; h(2)=99.001 为图的下一级子对象坐标轴的句柄; h(3)=101.0006 为坐标轴的下一级子对象线条的句柄; h(4)=100.0016 为坐标轴的下一级子对象文本的句柄。

第4章 Matlab的图形功能
c. 函数 copyobj 把对象从一个父对象中复制到另一个父对象中。若复制的对 象中含有子对象,则把所有的子对象一并复制。 调用格式如下:
?C=copyobj(H,P): H 和 P 都是向量, H 和 P 的长度必须相等,向量 的元素为对象的句柄。H 中的句柄对应的图形对象都被复制到P 中相应 句柄的图形元素之下,分别成为这些父对象的子对象。新对象的句柄将 赋值给向量 C 中的相应元素; ?C=copyobj(H,p):H 是向量,p 是标量。H 中的每一个句柄对应的图 形对象都将被复制到句柄 p 的图形对象之下,成为这个父对象p的子对 象。新子对象的句柄将赋给向量 C 中的相应元素; ?C=copyobj(h,P):h 是标量,P 是向量。句柄 h 的图形对象将被复制到 向量 P 中的每个句柄对应的图形对象之下,分别成为这些父对象的子对 象。新子对象的句柄将赋给向量 C 中的对应元素。

第4章 Matlab的图形功能
函数 copyobj 的用法。
mesh(peaks(30)); text(30,20,2,'\leftarrowpeak'); hh=findobj(gcf)

在上述程序之后加入如下内容:
h=findobj('string','\leftarrowpeak') %将文字对象的句柄值返回给变量 h figure %重新建立一个图形对象 mesh(peaks(20)); %在 20*20 的区域创建图形内容

使用 copyobj 命令进行对象的复制,在上述程序后加上如下内容:
ha=copyobj(h,gca) %将文本对象( h 句柄所指的对象)复制到新区域图形中 hh = %程序输出结果 1.0000 99.0013 101.0011 100.0038 h= 101.0011 ha = 200.0004

第4章 Matlab的图形功能

5.图形对象属性的获取及其设置 ?所有的对象都有属性( Property),对象的属性可包括 诸如对象的位置、颜色、类型、父对象、子对象及其他 内容。可通过设定这些属性来定义和修改对象的特征。 ?对象属性包括属性名(字符串,识别属性时不分大小写) 和相应的属性值。 ?涉及到各对象属性的文件和查阅方法
? 阅读或者打印以下 PDF 文件:
help\pdf_doc\matlab\graphg.pdf; help\pdf_doc\matlab\ref\refbook2.pdf

? 用命令 help 查看有关对象的资料
在命令窗口中键入 help figure,直接获得有关图形对象的属性描述;

? 在帮助窗口中,键入关键字( 如 Graphic Property)搜索、查询关 于对象属性的文件; ? 利用 get、set 命令在 命令窗口中直接查询对象的属性。

第4章 Matlab的图形功能
get 函数用于获取指定对象的属性。 调用方法:
◆ v = get(H,’PropertyName’) : 返 回 句 柄 为 H 的 对 象 中 名 为 “ PropertyName”属性的值。H 是向量,将同时返回向量 H 中每个 句柄对应图形对象的指定属性值, H 是标量,返回句柄为 H的对象 的所有属性名及其当前取值; ◆ v = get(h) :h 是标量,返回一个结构,结构的每个域名就是句柄为 h的对象的属性名,每个域又包括属性的值; ◆ v = get(0, ’factory<objecttype><propertyname>’) :对于所有类型的 对象,返回所有可以由用户设定的属性的“ 出厂值”( 即未经过任 何用户改动的最初缺省值),尖括号内的内容表示可选。 ◆ v = get(h, ’default<ObjectType><PropertyName>’) :返回缺省的属 性值。句柄h必须是标量,尖括号内的内容表示可选,如果这两个内 容都不选,那么该函数返回句柄为 h 的对象所有属性的缺省值。

第4章 Matlab的图形功能
set 函数用来设置对象属性值。 调用方法: ◆ set(H,’PropertyName’,PropertyValue):把句柄为H的对 象 中 名 为 PropertyName 的 属 性 值 设 置 为 “ PropertyValue”。H为向量时,函数为所有对象设置属性值; ◆ set(h,a) : a 是结构,其域名就是对象的属性名,属性 值包括在域中。把属性值赋给和域名相同的属性。句柄 h 为标量; ◆ set(H,PN,PV):PN和PV都是n×1维的数组,PN中的元 素为需要设置的属性名, PV 中的元素是设置的属性值; ◆ set(H,’PropertyName1’,PropertyValue1,’PropertyName2 ’,PropertyValue2,...): 用一条语句同时设置多个属性值。

第4章 Matlab的图形功能
创建一个图形对象,练习和体会 set 和 get 函数的用法。
x=0:0.1:2*pi; y1=sin(x); %创建一个正弦函数 H1_sin=plot(x,y1,'*') %画图并返回图像的句柄值 set(H1_sin,'color',[1,0.5,0],'Linewidth',1) %调用函数 set 设置正弦曲线的颜色和线宽 y2=cos(x); hold on H1_cos=plot(x,y2) set(H1_cos,'color',[0.25 0 1]) title('正弦和余弦函数曲线','fontsize',16,'color','blue') H_sin_color=get(H1_sin,'color') %调用 get 函数返回具有句柄 H1_sin 的对象的颜色

程序执行结果如下
H1_sin = 3.0010 H1_cos = 101.0009 H_sin_color = 1.0000 0.5000

0

第4章 Matlab的图形功能
八、用GUI 设计工具集创建用户菜单和控制对象 GUI 设计工具集可以通过命令 guide 启动,也可以由文件 创建。其窗口具有菜单栏、工具栏、工作区等栏目,包括 了编辑图形属性、设计 GUI 菜单和 GUI 控制对象等工具。
1.图形属性编辑器 ?属性检查器( Property Inspector)可以对所有图形对象 的所有属性进行交互式编辑。 ?属性检查器显示了当前对象的所有属性值,各种对象按 层次排列。最上面的按钮表示所显示属性所属的对象名称, 编辑器下面为属性内容,其中,左侧为对象的所有属性名 称,右侧为当前该属性的取值,用户可在此栏对属性的值 进行修改和添加。

第4章 Matlab的图形功能

第4章 Matlab的图形功能
2.用户菜单对象(unimenu) 由GUI 窗口上【 Tools】->【 Menu Editer】命令,或者工 具栏上的按钮,即可打开菜单编辑器。 最上面的主要功能按钮为: ?New Menu:新建一个菜单; ?New Menu Item:新建一个子菜单项; ?New Contextmenu:新建一个上下文
菜单;

?Delete Selected Item:删除选定的菜
单栏。 左边窗口给出当前图形中的菜单项列表,右边给出相应的对象属性, 分别是菜单项的标注( Label)、标记(Tag)和回调程序( Callback) 的内容。用户可直接对之进行修改和添加。

第4章 Matlab的图形功能

菜单对象的属性 ? Label和 Callback是菜单对象的基本属性,编写一个具有 基本功能的菜单对象必须要设置 Label 和Callback 属性。 ? Label 是在菜单项上显示的标注文本。可以在相应字符的 前加上符号“&” 为Label定义快捷键,以便使用组合键 ‘Alt+字符’来打开相应的菜单项。 ? Callback属性用来设置菜单项的回调程序,其内容可以是 MATLAB 的函数、命令和可执行的表达式,也可调用自 己编写的函数。 ? Checked 属性用于设置是否在菜单项前添加选中标记, 设为“ on”表示添加,“ off”表示不添加。 ? Separator属性用于设置是否在菜单项前添加分隔线,设 为“ on”表示添加,“ off”表示不添加。

第4章 Matlab的图形功能
例:编制一个由draw、colormap和axis组成的多项选择菜单 1)在菜单编 辑器中设置各 级菜单项的 Lable项、Tag 项和Callback 项; 2)设置各个 回调函数的内 容;

第4章 Matlab的图形功能
% -------------------------------------------------------------------function varargout = Draw_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------function varargout = membrance_Callback(h, eventdata, handles, varargin) membrane % -------------------------------------------------------------------function varargout = peaks_Callback(h, eventdata, handles, varargin) peaks % -------------------------------------------------------------------function varargout = Sinc_Callback(h, eventdata, handles, varargin) [x,y]=meshgrid(-5:0.5:5); r=sqrt(x.^2+y.^2)+eps; z=sin(r)./r; surf(x,y,z); axis tight % -------------------------------------------------------------------function varargout = Colormap_Callback(h, eventdata, handles, varargin)

第4章 Matlab的图形功能
% -------------------------------------------------------------------function varargout = Hot_Callback(h, eventdata, handles, varargin) colormap(hot); % -------------------------------------------------------------------function varargout = Cool_Callback(h, eventdata, handles, varargin) colormap(cool); % -------------------------------------------------------------------function varargout = Defaults_Callback(h, eventdata, handles, varargin) colormap('default'); % -------------------------------------------------------------------function varargout = Axis_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------function varargout = Axis_on_Callback(h, eventdata, handles, varargin) axis on; % -------------------------------------------------------------------function varargout = Axis_off_Callback(h, eventdata, handles, varargin) axis off;

第4章 Matlab的图形功能

第4章 Matlab的图形功能
3. 用户界面控制对象( Uicontrol) 控制对象的类型及style属性

第4章 Matlab的图形功能
控制对象的其他属性:
a. Value 属性:控制对象的当前值,格式为标量或向量。 ?复选框:选中时, Value 的值为属性 Max 中设置的值;未选中时, Value 的值为属性 Min 中设置的值; ?列表框:被选中选项的序号,当有多个选项被选中时,Value 属性的 值为向量。最上面的选项序号为 1,第二个选项序号为 2,… ?弹出式菜单:和列表框类似,也是被选中选项的序号,只是弹出式菜 单Value 属性的值为标量; ?单选按钮:被选中时 Value 的值为属性 Max 中设置的值;未选中时 Value 的值为属性 Min 中设置的值; ?滑动条:Value 的值等于滑块指定的值; ?双位按钮当双位按钮按下时,Value 的值为属性 Max 中设置的值;放 开时,Value 的值为属性 Min 中设置的值; ?单功能按钮、可编辑文本框、区域框和静态文本框:不设置属性的这 个值。

第4章 Matlab的图形功能

b. Max 属性:指定 Value 属性中设置的最大值,为标量。 ? 复选框:为复选框被选中 Value 属性的取值; ? 编辑框:如果 Max 的值减去 Min 的值大于 1,编辑框可 以接受多行输入文本;否则编辑框只能接受一行输入文 本; ? 列表框:如果 Max 的值减去 Min 的值大于 1,允许选取 多个选项;否则只能选取一个选项; ? 无线电按钮:当无线电按钮被选中时 Value 属性的取值; ? 滑动条:滑动条的最大值,缺省值是 1; ? 双位按钮:当按钮为“ 开”( 被选中)时 Value 属性的 取值。缺省值为 1; ? 文本框、弹出式菜单、单功能按钮和静态文本框不使用 Max 属性。

第4章 Matlab的图形功能

c. Min 属性:指定 Value 属性中设置的最小值,为标量。 ? 复选框:为复选框未被选中的 Value 属性的取值; ? 编辑框:如果Max的值减去Min的值大于1,编辑框可以接 受多行输入文本;否则编辑框只能接受一行输入文本; ? 列表框:如果 Max 的值减去 Min 的值大于 1 ,允许选 取多个选项;否则只能选取一个选项; ? 无线电按钮:当无线电按钮未被选中时Value属性的取值; ? 滑动条:滑动条的最小值,缺省值是 0; ? 双位按钮:当按钮为“ 关”( 未被选中)时 Value 属 性的取值。缺省值为 0; ? 文本框、弹出式菜单、单功能按钮和静态文本框不使用 Min 属性。

第4章 Matlab的图形功能
用户控制对象的创建 建立控制对象并设置基本属性 设置对齐方式 编写回调程序 GUI 设计工具集窗口的左侧便是各种类型的控制对象按钮 栏。单击要添加的控制对象按钮,在图形窗口中“ 画出” 所需要的位置和大小即可。 例:创建一个图形用户界面,使之包含静态文本、无线电选 择开关、双选按键和控制对象区域框四种控制对象。

第4章 Matlab的图形功能

第4章 Matlab的图形功能
% -------------------------------------------------------------------function varargout = radiobutton1_Callback(h, eventdata, handles, varargin) if get(gcbo,‘value’) %获得当前对象属性值 hr1=findobj('Tag','radiobutton1'); hr2=findobj('Tag','radiobutton2'); ht=findobj('Tag','title') set(ht,'fontangle','normal'); set(hr1,'value',1); set(hr2,'value',0); end % -------------------------------------------------------------------function varargout = radiobutton2_Callback(h, eventdata, handles, varargin) if get(gcbo,‘value’) %获得当前对象属性值 hr1=findobj('Tag','radiobutton1'); hr2=findobj('Tag','radiobutton2'); ht=findobj('Tag','title') set(ht,'fontangle','italic'); set(hr1,'value',0); set(hr2,'value',1); end

第4章 Matlab的图形功能
% -------------------------------------------------------------------function varargout = pushbutton1_Callback(h, eventdata, handles, varargin) grid; % -------------------------------------------------------------------function varargout = axes1_CreateFcn(h, eventdata, handles, varargin) t=0:pi/50:2*pi; y=sin(t); plot(t,y); axis([0 2*pi -1 1]);


Matlab工程应用基础_4_3精讲_图文.ppt

Matlab工程应用基础_4_3精讲 - 第4章 Matlab的图形功能 七、图

Matlab工程应用基础_4_1_图文.ppt

Matlab工程应用基础_4_1_计算机软件及应用_IT/计算机_专业资料。ma

Matlab工程应用基础 3 3_图文.ppt

Matlab工程应用基础 3 3_数学_自然科学_专业资料。第3章 矩阵、数组和

Matlab工程应用基础_图文.ppt

Matlab工程应用基础_其它_职业教育_教育专区。Matlab 第3章 矩阵、

Matlab工程应用基础_4_2_图文.ppt

Matlab工程应用基础_4_2 - 第4章 Matlab的图形功能 3.等高线

Matlab工程应用基础_1_图文.ppt

Matlab工程应用基础_1_电子/电路_工程科技_专业资料。课程的性质、目的和

Matlab工程应用基础 4.1_图文.ppt

Matlab工程应用基础 4.1 - 第4章 矩阵、数组和符号运算 一、矩阵和数

Matlab工程应用基础_3_2_图文.ppt

Matlab工程应用基础_3_2 - 第3章 Matlab语言程序设计 章 语言程序设计 4、程序结构与流程控制语句 、 a) 顺序结构 第3章 Matlab语言程序设计 章 语言程序设计...

Matlab工程应用基础_4_1.ppt

4Matlab的图形功能(1)掌握图形窗口的创建与控制,以及图形窗口的基本操 作; (2)熟练掌握二维和三维绘图基本的命令、着色、线型控 制; (3)初步掌握用特殊的...

MATLAB基础与应用chapter4-3_图文.pdf

MATLAB基础应用chapter4-3 - 2011/7/11 Matlab基础及其应用 第6讲 Matlab数值积分与微分 6.1 数值积分 6.2 数值微分 主讲教师:张帆 1 ...

Matlab工程应用基础_4_3_图文.ppt

Matlab工程应用基础_4_3 - 第4章 Matlab的图形功能 章 的图形

Matlab工程应用基础_4_3_图文.ppt

Matlab工程应用基础_4_3_工学_高等教育_教育专区。malab 实用技巧

Matlab工程应用基础_2_1Matlab语言程序设计57875_441_图文.ppt

Matlab工程应用基础_2_1Matlab语言程序设计57875_441_计算机软件及应用_IT/计算机...>> A=[1,2;3,4] A= 12 34 >> B={1:4, A, 'abcd'} B= [1x4...

MATLAB基础与应用chapter4-4_图文.pdf

MATLAB基础应用chapter4-4 - 2011/7/11 Matlab基础及其应用 第7讲 Matlab符号计算 7.1 7.2 7.3 7.4 符号对象 符号微积分 级数符...

Matlab工程应用基础_图文.ppt

Matlab工程应用基础_数学_自然科学_专业资料。Matlab工程应用基础 A

Matlab工程应用基础_4_1_图文.ppt

4Matlab的图形功能(1)掌握图形窗口的创建与控制,以及图形窗口的基本操 作; (2)熟练掌握二维和三维绘图基本的命令、着色、线型控 制; (3)初步掌握用特殊...

Matlab工程应用基础_4_2_图文.ppt

Matlab工程应用基础_4_2 - 第4章 Matlab的图形功能 章 的图形

Matlab工程应用基础_Matlab工程应用基础_2_2Matl.._图文.ppt

(3) 掌握 掌握Matlab基本表达式并了解其常用函数分类; 基本表达式并了解其常用函数分类; 基本表达式并了解其常用函数分类 (4) 熟练掌握 Matlab 的程序结构(顺序结构...

第1章_Matlab工程应用基础_概述_图文.ppt

第1章_Matlab工程应用基础_概述_信息与通信_工程科技_专业资料。Matl

Matlab工程应用基础_2_2Matlab语言程序设计_图文.ppt

Matlab工程应用基础_2_2Matlab语言程序设计_计算机软件及应用_IT/计算机_专业资料...>> A=[1,2;3,4] A= 1 2 3 4 >> B={1:4, A, 'abcd'} B= ...