matlab句柄图形对象
MATLAB GUI程序设计
按钮控件
图形窗口
坐标轴
句柄( 句柄(Handle)—图形对象的标志 ) 图形对象的标志
句柄就是某个图形对象的记号, 句柄就是某个图形对象的记号,matlab给每 给每 个图形对象都指定一个handle,由句柄唯一 个图形对象都指定一个 , 地标值要操作的图形对象( 地标值要操作的图形对象(类似电话区号和 号码)。 号码)。 对于root对象,matlab规定它的句柄是屏幕, 句柄值为0
Root(屏幕)
Figure(图)
Uicontrol( 界 面 控 制項)
Axes(轴)
Uimenu( 界 面 选 单)
Line (线条)
Surface (表面)
Rectangle (矩形)
Patch (貼片)
Image (图像)
Text (文字)
Light (光源)
图形体系
文字控件 界面表单
弹出表单 控件 曲线
创建GUI 创建
基本步骤: 基本步骤: 1. 设计 图形用户界面 2. 用GUIDE 编辑界面 3. 编写回调函数 4. 保存,运行 保存,
GUI编辑界面 编辑界面 对齐
菜单 工具栏 M文件编辑 文件编辑
控 件
{
属性
运行
基本控件Basic Controls: 基本控件 :
axes: 坐标轴 static text: 静态文 本,用户不可编辑 edit box: 文本框, 文本框, 用户可编辑。 用户可编辑。 button:按钮 按钮
属性窗口The Property Inspector: 属性窗口 : Tag –控件名称 控件名称. 控件名称 String – 控件显示的内容 ForegroundColor –文字显示内容 文字显示内容 BackgroundColor –控件背景 控件背景
【转】matlab图形句柄详解(一)
【转】matlab图形句柄详解(⼀)在matlab中,每⼀个对象都有⼀个数字来标识,叫做句柄.当每次创建⼀个对象时,matlab就为它建⽴⼀个唯⼀的句柄,句柄中包含有该对象的相关信息参数,可以在后续程序中进⾏操作,改变其中的参数,以便达到不同的效果。
例如:gcf 是返回当前被激活的窗⼝的句柄。
你可以认为它就指代当前窗⼝。
figure(gcf)打开这个窗⼝。
句柄式图形常⽤函数:所有对象都有属性来定义它们的特征,正是通过设定这些属性来修正图形显⽰的⽅式。
尽管许多属性所有的对象都有,但与每⼀种对象类型(⽐如坐标轴,线,曲⾯)相关的属性列表都是独⼀⽆⼆的。
对象属性可包括诸如对象的位置、颜⾊、类型、⽗对象、⼦对象及其它内容。
每⼀个不同对象都有和它相关的属性,可以改变这些属性⽽不影响同类型的其他对象。
和每⼀种对象类型(图形,坐标轴,线,⽂本,曲⾯,补⽚和图象)相关的完整的属性列表在本章的后⾯给出。
对象属性包括属性名和与它们相联关的值。
属性名是字符串,它们通常按混合格式显⽰,每个词的开头字母⼤写,⽐如:’ LineStyle ‘ 。
但是,MATLAB识别⼀个属性时是不分⼤⼩写的。
另外,只要⽤⾜够多的字符来唯⼀地辨识⼀个属性名即可。
例如,坐标轴对象中的位置属性可以⽤ ‘ Position ‘, ‘ position ‘ ,甚⾄是 ‘ pos ‘来调⽤。
当建⽴⼀个对象时,它⽤⼀组缺省属性值,该值可以⽤两种⽅法来改变:改变默认属性值⽅法1:» Hf_1=figure( ‘color’, ‘white’ )它⽤缺省的属性值建⽴⼀个新的图形窗⼝,只是背景颜⾊被设为⽩⾊⽽不是缺省的[0.8 0.8 0.8](灰⾊)。
改变默认属性值⽅法2:为了获得和改变句柄图形对象(如上⾯的Hf_1)的属性只需要两个函数:函数get返回某些对象属性的当前值。
使⽤函数get的最简单语法是get(handle, ‘ PropertyName’ )。
图形句柄
0
-0.2
-0.4
0
2
4
6
8
10
12
14
五、创建图形对象函数
1、创建图形窗口
figure
调用格式: H=figure(n)
n为窗口序号
例:创建1号窗口,并返回句柄。
>>H=figure(1) H=1
返回值为窗口号数
2、创建轴对象
axes
left, bottom H=axes(‘property’, ) width,height
变量H是句柄值——浮点数
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1
0
1
2
3
4
5
6
7
4、标注文字
text
H=text(x,y,’string’)
确定标注位置 标注字符串
每个函数只能创建一个图形对象, 并将它们置于适当的父辈对象中。
图形对象的基本要素以根屏幕为先导
根屏幕 父对象
窗口1
窗口2
……
窗口n
界面控制
界面菜单
轴
线
面
字
块
像
子对象
图形对象之间的关系为父代与子代的关系
窗口对象
1 0.8 0.6 0.4 0.2 0
轴对象 线 对 象
图形对象句柄:
根屏幕(Root)句柄总是数字0; 图形窗口( Figure )的句柄总是正 整数,用它来标识图形窗的序号。 其它图形对象的句柄为浮点数。
第五节 图形句柄
一、matlab句柄绘图的特点
——matlab语言的句柄绘图可以对 图形各基本对象进行更为细腻 的修饰,可以产生更为复杂的 图形,而且为动态图形的制作 奠定了基础。
matlab句柄属性
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')返回那些用户可以设置默认值的所有对象的属性,同时显示可设置的属性值。
第6章 MATLAB高级图形设计
%h_obj是图形对象的句柄; %funname是函数名,每个创建的图形对象函数名与对象
名相同; %'PropertyName'是属性名,属性名是字符串; %PropertyValue是属性值。
例: >> h_f=figure('Position',[200 300 500 400]) >> h_a1=axes('position',[0.1,0.05,.85,.85]) %创建条形图的坐标轴 练习
gcf %查找符合指定属性值的对象句柄
例
第6章 MATLAB高级图形设计
3. 句柄图形对象属性的获取和设置 a=set(h_obj,'PropertyName',PropertyValue,...)
%设置图形对象的属性值
a=get(h_obj,'PropertyName')
Uicontrol 控件对象
Uicontextmenu 上下文菜单
Uimenu 菜单
Uipanel 面板
Uitoolbar 工具栏
第6章 MATLAB高级图形设计
6.1.2 句柄图形对象的操作
1. 创建句柄图形对象 h_obj=
funname('PropertyName',PropertyValue,……)
%获取图形对象的属性值PropertyValue
第6章 MATLAB高级图形设计
例6-2 使用句柄图形对象绘制正弦曲线
>> x=0:0.1:10; >> y=sin(x); %创建无标题窗口 >> h_f=figure('Position',[200 300 300 300],'menubar','none'); >> h_a1=axes('position',[0.1,0.1,.8,.8]); >> h_t=title(h_a1,'正弦曲线'); %创建标题 >> h_l=line(x,y); %设置坐标轴刻度及刻度标注 >> set(gca,'xtick',[0 pi/2 pi 3*pi/2 2*pi 5*pi/2 3*pi]) >> set(gca,'xticklabel',{'0','pi/2','pi','3*pi/2','2pi','5*pi/2','3pi'}) >> set(gca,'xgrid','on','ygrid','on'); %设置坐标轴属性 >> set(h_l,'linewidth',2) %设置线属性 >> set(get(h_t,'parent'),'color','y') %设置标题的父对象属性 %创建矩形框 >> h_ann0=annotation(gcf,'rectangle',[0.1 0.5 .8 0.4],... 'FaceAlpha',.7,'FaceColor','red');
matlab中copyobj用法
matlab中copyobj用法
在MATLAB中,`copyobj`函数用于复制图形对象并将其插入到另一个图形对象的父级中。
它的基本语法是:
matlab.
h = copyobj(hsource, hparent)。
其中,`hsource`是要复制的图形对象的句柄,`hparent`是要将复制的对象插入的父级对象的句柄。
这个函数会返回新复制对象的句柄`h`。
`copyobj`函数的用法可以从多个角度来解释。
首先,它可以用于创建图形对象的副本,这在需要在同一图形或不同图形中显示相同的图形对象时非常有用。
其次,它可以用于动态地创建和管理图形对象,特别是当需要在运行时根据特定条件复制对象时。
此外,`copyobj`还可以用于将图形对象从一个图形窗口复制到另一个图形窗口,或者从一个坐标系复制到另一个坐标系。
需要注意的是,`copyobj`函数不仅仅复制图形对象本身,还会
复制其所有的属性。
这意味着复制的对象将具有与原始对象相同的外观和行为。
然而,如果需要对复制的对象进行修改,可以在复制后对其属性进行调整。
总之,`copyobj`函数在MATLAB中是一个非常有用的工具,可以帮助用户轻松地管理和操作图形对象。
通过灵活运用`copyobj`函数,可以更好地实现图形的动态显示和交互。
ch6 matlab图形句柄
Matlab图形句柄 set范例: t = 0:0.1:4*pi; y = exp(-t/5).*sin(t); h = plot(t, y); % h 为曲线的句柄 set(h,'Linewidth',3); % 将曲线宽度改为 3 set(h,'Marker','o'); %将曲线的线标改成小圆圈 set(h,'MarkerSize',20); % 将线标的大小改成 20 get范例: get(h,'LineWidth') h,'Color') get(0,'screensize') %取得曲线宽度 %取得曲线颜色 %取得屏幕的尺寸
例:编写程序建立图形窗口,要求满足: 1)窗口宽和高为屏幕宽和高的一半,窗口右下角在 屏幕宽和高的1/4处;窗口背景为蓝色. 2)无菜单栏,标题名称为"图形窗口演示",无图 形窗口编号. 3)单击鼠标打印出正弦曲线. x=0:0.05:2*pi;y=sin(x); s=get(0,'screensize'); h=s(4);w=s(3); h1=figure('color',[0,0,1],'position',[0.25*w,0.25*h,... 0.5*w,0.5*h],'name','图形窗口演示','numbertitle',... 'off','menubar','none','windowbuttondownfcn',... 'plot(x,y);axis([0,2*pi,-1,1])');
matlab GUI函数句柄
(18)WindowButtonDownFcn:有效值为字符串或函数句柄
(9)a = set(0,’factory’)返回那些用户可以设置默认值的所有对象的属性,同时显示可设置的属性值。
(10)a=set(0,’FactoryObjectTypePropertyName’)返回所有对象中指定的属性名称FactoryObjectTypePropertyName的所有可能的属性值。
(4)a = get(0,’FactoryObjectTypePropertyName1′,’FactoryObjectTypePropertyName2′,…)返回指定对象类型指定的属性值,输入参数FactoryObjectTypePropertyName为一个关键词,由字符Factory与图形对象类型(如Figure)还有属性名称(如Color)组成。
plot(1:10);grid on;set(gca,’gridlinestyle’,'-.’);将当前坐标轴显示的网格线为点-虚线
(6)linewidth 定义X,Y和Z轴的轴线宽度(以点单位定义)
(7)NextPlot:有效值为add|replace|replacechildren,默认为replace
set(gcf,’units):得到[ inches | centimeters | normalized | points | {pixels} | characters ],其中 ,大括号中是默认值
MATLAB基础教程(第四版)第9章 MATLAB句柄图形
图形对象是 MATLAB 显示数据的基本绘图 元素,每个对象拥有一个唯一的标志,即 句柄。通过句柄可以对已有的图形对象进 行操作,控制其属性。
MATLAB 中这些对象的组织形式为层次结 构,如图所示。
2021年8月23日
第5页
MATLAB R2018b 基础教程
2021年8月23日
第9页
MATLAB R2018b 基础教程
MATLAB 的图形对象(6/7)
Annotation 对象 它是 MATLAB 中的注释内容,存在于因此 的坐标系中,该坐标系的范围为整个图形 窗口。用户可以通过规范化坐标将注释对 象放置于图形窗口中的任何位置。规范化 坐标的范围为从 0 到 1,窗口左下角为 [0,0],右上角为 [1,1]。
Interruptible
确定当前的响应函数是否可以被后继的响应函数中断
Parent
该对象的上级(父)对象
Selected
表明该对象是否被选中
SelectionHighlight
指定是否显示对象的选中状态
Tag
用户指定的对象标签
Type
该对象的类型
UserData
用户想与该对象关联的任意数据
Visible
2021年8月23日
第7页
MATLAB R2018b 基础教程
MATLAB 的图形对象(4/7)
Core 对象 包括基本的绘图单元,包括线条、文本、多边形 及一些特殊对象,如表面图,表面图中包括矩形 方格、图像和光照对象,光照对象不可视,但是 会影响一些对象的色彩方案。
2021年8月23日
第8页
设置该对象是否可见
2021年8月23日
matlab使用教程4-3
第4章 Matlab的图形功能 章 的图形功能
2.图形对象和句柄图形的结构层次 2.图形对象和句柄图形的结构层次 图形对象包括图形窗口或者图形 还有坐标系、线条、 包括图形窗口或者图形, 图形对象包括图形窗口或者图形,还有坐标系、线条、 曲面、文本等。这些对象按父对象和子对象组成 MATLAB 图形体系的层次结构。 图形体系的层次结构。 每个图形对象都由若干可以被独立操作的对象构成 都由若干可以被独立操作的对象构成, 每个图形对象都由若干可以被独立操作的对象构成,它 不必包含全部对象,但是必须具备根屏幕 根屏幕( 不必包含全部对象,但是必须具备根屏幕( Root)和图 ) 形窗( 形窗( Figure)。 ) 每个父对象可以包含一个或多个子对象。除了控件对象 每个父对象可以包含一个或多个子对象。 包含一个或多个子对象 ( Uicontrol)和菜单对象( Uimenu)外,所有的对象 ) 菜单对象( ) 都是坐标轴的子对象,并且在这些坐标轴上显示。 坐标轴的子对象 都是坐标轴的子对象,并且在这些坐标轴上显示。所有 创建对象的函数当父对象不存在时,都会创建它们。 创建对象的函数当父对象不存在时,都会创建它们。
文件: 阅读或者打印以下 PDF 文件:
help\pdf_doc\matlab\graphg.pdf; ; help\pdf_doc\matlab\ref\refbook2.pdf
用命令 help 查看有关对象的资料
在命令窗口中键入 help figure,直接获得有关图形对象的属性描述; ,直接获得有关图形对象的属性描述;
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 中的对应元素。 新子对象的句柄将赋给向量 中的对应元素。
经典MATLAB图形句柄
PropertyValue = get(h,'PropertyName');
使用`refreshdata`命令更新图…
refreshdata(h);
使用`drawnow`命令更新图形窗口
drawnow;
图形句柄的删除和销毁
使用`delete`命令删除指定图形对象
delete(h);
图形句柄的分类
线条句柄
用于标识和操作线条ቤተ መጻሕፍቲ ባይዱ象。
曲面句柄
用于标识和操作曲面对象。
文本句柄
用于标识和操作文本对象。
图像句柄 组句柄
用于标识和操作图像对象。
用于标识和操作一组相关的 图形对象。
02
常用图形句柄
坐标轴句柄
获取当前坐标轴句柄
使用`gca`函数可以获取当前坐标轴的句柄。
设置坐标轴属性
通过坐标轴句柄,可以设置坐标轴的属性,如坐标轴范围、刻度标记等。
对于初学者来说,经典Matlab图形句柄的学习曲线可能较为陡峭,需 要投入较多时间和精力。
Matlab图形句柄的未来发展
性能优化
未来版本的Matlab可能会对图形句柄进行 性能优化,提高绘图速度和响应能力。
增强灵活性
为了满足更多样化的绘图需求,未来版本的Matlab 可能会增加更多的图形句柄功能和选项。
区域句柄
创建区域
01
使用`area`函数可以创建区域图,并返回区域的句柄。
设置区域属性
02
通过区域句柄,可以设置区域的填充颜色、边框颜色等属性。
添加数据标签
03
使用区域句柄,可以在区域上显示数据标签,以标识区域的值。
03
MATLAB程序设计基础教程(刘国良)-第9章
第9章 句柄图形与GUI设计
1.set()函数 在MATLAB中,使用set()函数可以设置对象的属性值,其 通常的调用格式如下: set(H,'PropertyName',PropertyValue,...):设置由句 柄H指定的图形窗口的属性,属性名由'PropertyName' 指定, 其属性值为 PropertyValue。H可以为向量,此时将H中指定 的所有窗口的PropertyName属性设置为 PropertyValue。 例如:set(gca,'YAxisLocation','right') 通过set()函数可以查看一个对象的所有可设置属性的所 有可能的值。 >> set(axes) ActivePositionProperty: [ position | {outerposition} ] ALim ALimMode: [ {auto} | manual ]
第9章 句柄图形与GUI设计
一个图形是由许多的图形对象组成的,这些对象是以层次 顺序保存的。图形对象包括:
根对象。 绘制图形的图形框架窗口对象(即Figure窗口)。 核心(Core)对象。 绘图(Plot)对象。 注释对象。 MATLAB中这些对象的组织形式为层次结构,如图9-1所示。
第9章 句柄图形与GUI设计
句柄图形是对底层图形例程集合的总称,它进行生 成图形的实际工作。这些细节通常隐藏在图形M文件的内部, 如果想使用它们,则通过图形句柄也是可得到的。图形对象是 MATLAB显示数据的基本绘图元素,每个对象拥有一个唯一的 标志,即句柄。通过句柄可以对已有的图形对象进行操作,控 制其属性。句柄图形使用户可以自定义MATLAB的信息显示方 式。
北航matlab课件第五讲句柄图形和GUI
自动化科学与电气工程学院
句柄图形与GUI
句柄图形
对象句柄的获取方法 通过get函数获取对象的句柄 如果图形对象已知,可以在程序中通过get函数获取图形对象的句柄。 H_pa=get(H_known,PV) H_pa=get(H_known,’Parent’) 获取H_known句柄对象之父对象的句柄 H_ch=get(H_known,’Children’) 获取H_known句柄对象之子对象的句柄 >> get(H_mesh,'Children') ans = Empty matrix: 0-by-1 >> get(H_mesh,'Parent') ans = 158.0062
>> view(3) >> text('Position',[.5 .5 .5],'String','Hello')
自动化科学与电气工程学院
句柄图形与GUI
句柄图形
对象句柄的获取方法 通过图形创建命令获取对象的句柄 在Matlab中无论使用高层命令还是底层命令都可以通过以下指令获取句柄。 H_GC=GraphicCommand(……….) >> H_mesh=mesh(peaks(20)) H_mesh = 159.0073
父对象
子对象
兄弟对象
自动化科学与电气工程学院
句柄图形与GUI
句柄图形
对象属性 所有对象都有一组定义和描述其外貌和性状的属性(Properties)。 属性有两个部分组成:属性名和属性值。 用户不仅可以查询当前对象的任意属性值,在创建图形对象的时候还可以指定大多 数属性的取值。
>> get(gcf) Color = [0.8 0.8 0.8] Colormap = [ (64 by 3) double array] CurrentAxes = [158.003] CurrentObject = [] NextPlot = add Position = [363 214 560 420] Children = [158.003] Parent = [0]
set在matlab中的用法
set在matlab中的用法标题: MATLAB中的Set函数及其应用引言:MATLAB是一种强大的科学计算与数值分析软件,广泛应用于工程、科学研究以及数据分析领域。
其中,set函数是MATLAB中一个重要的功能模块,用于设置图形对象的属性。
本文将详细介绍set函数的语法、功能和应用场景,并逐步回答相关问题。
一、set函数基础知识1. set函数的语法:set(handle, 'propertyName1', propertyValue1, 'propertyName2', propertyValue2, ...)- handle: 图形对象的句柄,可以是一个图形窗口、坐标轴、图形对象等。
- propertyName: 对象的属性名称,如'color'、'linewidth'等。
- propertyValue: 对象属性的值,可以是一个具体数值或字符串。
2. 使用set函数的优势:- 批量设置对象的属性,提高效率。
- 可以在不创建新对象的情况下改变对象的属性。
- 灵活的属性操作,方便适应不同需求。
二、常见用法和实例1. 设置图像属性:- 更改图像线条颜色:set(gca, 'Color', 'r')- 修改图像透明度:set(gca, 'Alpha', 0.5)- 调整图像线宽:set(line_handle, 'LineWidth', 2)2. 设置坐标轴属性:- 设置坐标轴标题:set(ax_handle, 'Title', 'My Plot')- 修改坐标轴刻度:set(ax_handle, 'XTick', [0:pi/4:pi]) - 调整坐标轴范围:set(ax_handle, 'XLim', [-2,2])3. 设置图形窗口属性:- 调整窗口大小:set(gcf, 'Position', [100,100,800,600]) - 修改窗口标题:set(gcf, 'Name', 'My Figure')4. 设置文本属性:- 修改文本字体:set(text_handle, 'FontName', 'Arial') - 调整字体大小:set(text_handle, 'FontSize', 12)- 更改文本颜色:set(text_handle, 'Color', 'b')三、set函数的高级应用1. 使用结构体数组批量设置属性:- 创建结构体数组:s = struct('property', {'color', 'linewidth'},'value', {'r', 2})- 使用set函数批量设置属性:set(handle, {s.property}, {s.value})2. 动态设置属性:- 根据条件改变属性值:if condition, set(handle, 'property', value1), else, set(handle, 'property', value2), end3. 利用set函数进行动画效果:- 利用for循环逐帧修改对象属性:for i = 1:n, set(handle, 'property', value(i)), drawnow, end四、常见问题解答1. 如何获取对象的属性值?- 使用get函数:value = get(handle, 'property')2. set函数能否批量设置对象数组的属性?- 是的,可以使用for循环遍历对象数组,然后分别调用set函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
句柄图形对象(1)function my_plotx=1:10y=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=1for i=1:length(line_handles)if style>length(LSO)style=1endset(line_handles(i),'LineStyle',LSO(style,:)) %设置直线属性style=style+1endgrid on(2)function my_plot3(x,y,z)cax=newplothold_state=ishold%检测当前的hold状态LSO=['- ';'--';': ';'-.']narginif nargin==2%nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。
%通常可以用他来设定一些默认值,如下面的函数。
例子,函数test1的功能是输出a和b的和。
%如果只输入一个变量,则认为另一个变量为0,如果两个变量都没有输入,则默认两者均为0。
%function y=test1(a,b)%if nargin==0%a=0;b=0;%elseif nargin==1%b=0;%endy=a+b;hlines=line(x,y,'Color','k')if ~hold_state%如果hold为off时,改变视图view(2)endelseif nargin==3hlines=line(x,y,z,'Color','k')if ~hold_state%如果hold为off时,改变视图view(3)endendls=1for hindex=1:length(hlines)if ls>length(LSO)ls=1endset(hlines(hindex),'LineStyle',LSO(ls,:)) ls=ls+1end(3)function visit_handlex=0:15y=[1.5*cos(x);4*exp(-0.1*x).*cos(x);exp(0.05*x).*cos(x)]h=stem(x,y')%注意转换成列向量axis([0,16,-4,4])set(h(1),'Color','black','Marker','o','Tag','Decaying Exponentail')%h(1)表示Y第一行元素在图形中的属性set(h(2),'Color','black','Marker','square','Tag','Growing Exponentail')%Marker表示元素点表示方法,三列标识都不同set(h(3),'Color','black','Marker','*','Tag','Steady State ') %图形对象有句柄,是一个数;GUI里的控件有tag,是一个字符串。
都是独一无二的标识。
%h = plot(sin(0:.01:2*pi);返回的h是曲线的句柄,它没有tag 比如某个文本的tag值为t1,设置其内容为hello,则可以这么写set(handles.t1,'string','hello');set(findobj(gca,'-depth',1,'Type','line'),'LineStytle','--' )%将图形中所有属性为直线的对象变为虚线h=findobj('-regexp','Tag','^(?!Steady State$).')%返回所有正则表达式Tag为Steady State属性的对象set(h,{'MarkerSize'},num2cell(cell2mat(get(h,'MarkerSize')) +2))%改变上述属性对象的标记大小h=findobj('type','line','Marker','none','-and','-not','Line Style','--')%返回线性为直线没有标记并且线性不是虚线的对象set(h,'Color','red')%改变上述对象的颜色(4)function setup_axesh=axes('Color',[0.9,0.9,0.9],...'GridLineStyle','--',...'ZTickLabel','-1|Z=0 Plane|+1',...'FontName','times',...'FontAngle','italic',...'FontSize',14,...'XColor',[0 0 0.7],...'YColor',[0 0 0.7],...'ZColor',[0 0 0.7])set(get(h,'XLabel'),'String','Value of X')set(get(h,'YLabel'),'String','Value of Y')set(get(h,'Title'),'String','\fontname{times}\itZ=f(x,y)') %设置标题Z=f(x,y)的字形set(get(h,'XLabel'),'String','Value of X',...'FontName','times',...'FontAngle','italic',...'FontSize',14)(5)function onefigure_severeaxes%在坐标轴外放置文本h=axes('Position',[0 0 1 1],'Visible','off') %对该坐标轴不可见axes('Position',[0.25 0.1 0.7 0.8])t=0:900plot(t,0.25*exp(-0.005*t))str(1)={'Plot of the function:'}str(2)={' y=A{\ite}^{-\alpha{\itt}} '}%注意字符串书写格式str(3)={'With the values:'}str(3)={' A=0.25'}str(4)={' \alpha=0.005 '}%特殊字符前加\str(5)={' t=0:900 '}set(gcf,'CurrentAxes',h)text(0.025,0.6,str,'FontSize',12)%在同一个图形中显示不同缩放尺度的图形h(1)=axes('Position',[0 0 1 1])sphereh(2)=axes('Position',[0 0 0.4 0.6]) sphereh(3)=axes('Position',[0 0.5 0.5 0.5]) sphereh(4)=axes('Position',[0.5 0 0.4 0.4]) sphereh(5)=axes('Position',[0.5 0.5 0.5 0.3]) sphereset(h,'Visible','off')%显示双坐标轴x1=[0:0.1:40]y1=4.*cos(x1)./(x1+2)x2=[1:0.2:20]y2=x2.^2./x2.^3%显示第一个坐标轴对象h11=line(x1,y1,'Color','r') ax1=gcaset(ax1,'XColor','r','YColor','r')%添加第二个坐标轴显示对象ax2=axes('Position',get(ax1,'Position'),...'XAxisLocation','top',...'YAxisLocation','right',...'Color','none',...'XColor','k','YColor','k')h12=line(x2,y2,'Color','k','Parent',ax2)xlimist1=get(ax1,'Xlim')ylimist1=get(ax1,'Ylim')xlinc1=(xlimist1(2)-xlimist1(1))/5ylinc1=(ylimist1(2)-ylimist1(1))/5xlimist2=get(ax2,'Xlim')ylimist2=get(ax2,'Ylim')xlinc2=(xlimist2(2)-xlimist2(1))/5ylinc2=(ylimist2(2)-ylimist2(1))/5%设置标度显示set(ax1,'XTick',[xlimist1(1):xlinc1:xlimist1(2)],... 'YTick',[ylimist1(1):ylinc1:ylimist1(2)])set(ax2,'XTick',[xlimist2(1):xlinc2:xlimist2(2)],... 'YTick',[ylimist2(1):ylinc2:ylimist2(2)])grid on(6)t=0:pi/20:2*pis=sin(t)c=cos(t)%%设置axes对象的Color属性figh=figure('Position',[30 100 800 350],...'DefaultAxesColor',[0.8 0.8 0.8])%%position [left bottom width height],set(gca,'Units') %%[inches | centimeters | points | pixels]axh1=subplot(1,2,1)grid on%%设置第一个Axes对象的LineStyle属性set(axh1,'DefaultLineLineStyle','-.')line('XData',t,'YData',s)line('XData',t,'YData',c)text('Position',[3 0.4],'String','Sine')text('Position',[2 -0.3],'String','Cosine',...'HorizontalAlignment','right') %文字水平对齐axh2=subplot(1,2,2)grid on%%设置第二个Axes对象的文字旋转属性set(axh2,'DefaultTextRotation',90)%文字旋转90度line('XData',t,'YData',s)line('XData',t,'YData',c)text('Position',[3 0.4],'String','Sine')text('Position',[2,0.3],'String','Cosine',...'HorizontalAlignment','right')Z=peaksplot(1:49,Z(4:7,:))closeset(0,'DefaultAxesColorOrder',[0 0 0],...'DefaultAxesLineStyleOrder','-|--|:|-.') %设置属性默认值,坐标轴颜色顺序,曲线线性顺序plot(1:49,Z(4:7,:))set(0,'DefaultAxesColorOrder','remove',...'DefaultAxesLineStyleOrder','remove')%删除属性默认值set(0,'DefaultSurfaceEdgeColor','k') h=surface(peaks)set(gcf,DefaultSurfaceEdgeColor','g') set(h,'EdgeColor')(7)function copy_detele_objx=0:0.01:6.28y=sin(x)figureplot(x,y)text_handle=text('String','\{5\pi\div4,sin(5\pi\div4)\}\rightarrow',...'Position',[5*pi/4,sin(5*pi/4),0],'HorizontalAlignment','right') %创建text对象句柄,将该句柄复制到其他图形中。