MATLAB学习笔记(十)——MATLAB图形句柄

(一)图形对象及其句柄

一、图形对象

MATLAB图形对象包括:

1、MATLAB每一个具体图形一定包括计算机屏幕和图形窗口两个对象

二、图形对象句柄

1、定义

MATLAB在创建每一个图形对象时,都会给该对象分配一个唯一确定的值,称其为图形对象句柄。

PS:(1)计算机屏幕句柄默认为0.

(2)图形窗口对象的句柄值为一正整数,并显示在窗口标题栏中

(3)其他图形对象的句柄为浮点数。

2、获取已有对象的句柄

3、一个demo

x=linspace(0,2*pi,30);
y=sin(x);

h0=plot(x,y,‘r‘)    %曲线对象的句柄
h1=gcf              %图形窗口句柄
h2=gca              %坐标轴句柄
h3=findobj(gca,‘Marker‘,‘x‘)            %坐标轴上曲线的句柄

运行结果如下:

h0 =

  174.0016

h1 =

     1

h2 =

  173.0011

h3 =

   Empty matrix: 0-by-1

(二)图形对象属性

一、属性名与属性值

属性名:每种对象的每个属性都规定好了名字,一般为其英文单词,一般要用单撇号括起来

属性值:每种属性名的取值

二、属性的操作

1、set函数

创建对象时,需要配置各个属性,否则将会以缺省值进行创建。

(1)调用格式

set(句柄,属性名1,属性值1,属性名2,属性值2,……)
%其中句柄指明要操作的对象
%set中的属性可以全部缺省

(2)一个demo。

x=0:pi/10:2*pi;
h=plot(x,sin(x));
set(h,‘Color‘,‘b‘,‘LineStyle‘,‘:‘,‘Marker‘,‘p‘);

2、get函数

我们还可以通过get得到属性值,再进行改变

(1)调用格式

V=get(句柄,属性名)
%V是返回的属性值
%如果省略属性名,则返回句柄的所有属性值。

(2)demo

x=linspace(0.2*pi,20);
y=sin(x);
h=plot(x,y);
col=get(h,‘Color‘);                %得到曲线的颜色

V=get(0,‘ScreenSize‘);         %得到当前窗口的平屏幕分辨率

三、对象的公共属性

1、Children属性:

取值是该对象所有子对象的句柄组成的一个向量。

2、Parent属性:

取值是该对象父对象的句柄。

3、Tag属性:

取值是一个字符串,作为对象的一个标识符(别名)

4、Type属性:

表示该对象的类型(显然是不可以改变的)

5、UserData属性:

该属性的取值是一个矩阵,缺省值为空矩阵。一般将一个图形对象有关的比较重要的数据储存在这个属性中,借此达到传送数据的作用。

一般做法:先用set函数给某一句柄添加一些附加数据(一个矩阵),如果想使用这样的矩阵,再用get调用出来。

6、Visible属性:

取值是on(缺省值)或off。决定是否显示在屏幕上。但是不显示不代表不存在。

7、ButtonDownFcn属性:

取值是一个字符串,一般是某个M文件名或一段MATLAB程序。图形对象巨鼎了一个作用区域,当单击该区域时,MATLAB自动执行该程序段。

8、CreatFcn属性:

取值是一个字符串,一般是某个M文件名或一段MATLAB程序。当创建该对象时自动自行该程序段(同构造函数)

9、DeleteFcn属性:

取值是一个字符串,一般是某个M文件名或一段MATLAB程序。当取消该对象时自动自行该程序段(同析构函数)

一个demo:

x=0:pi/50:2*pi;
y=sin(x);
z=cos(x);
plot(x,y,‘r‘,x,z,‘g‘);

H1=get(gca,‘Children‘);      %获取两曲线句柄向量H1
for k=1:size(H1)
    if get(H1(k),‘Color‘)==[0 1 0]       %【0,1,0】表示绿色
        H1g=H1(k);                       %获取绿色线条句柄
    end
end

pause;              %暂停
set(H1g,‘LineStyle‘,‘:‘,‘Marker‘,‘p‘);     %对绿色线条进行设置。

结果:

按下任意键

(三)图形对象测创建

一、图形窗口对象

1、定义

图形窗口是MATLAB中很重要的一类图形对象。MATLAB的一切图形图像的输出都是在图形窗口中完成的。

2、调用格式:

句柄变量=figure(属性名1,属性值1,属性名2,属性值2);
%属性名和属性值可以缺省,则命令如下
句柄变量=figure  或者  figure

figure(窗口句柄)       %设置为当前窗口。
                                  %如果窗口句柄写成一个整数,则可以使用这个句柄生成一个新的图形窗口,并定义为当前窗口。

close(窗口句柄)        %关闭图形窗口
close all;                     %关闭全部图形窗口
clf;                              %清除当前图形窗口的内容,但不关闭窗口。

3、图形窗口对象的常用属性(除了公共属性)

(1)MenuBar属性

取值是figure(缺省值)或none,用来控制窗口是否有菜单条。

如果属性为none,那么用户可以使用uimenu函数来加入自己的菜单条。

如果属性为figure,那么窗口保持默认的菜单条,这时可以采用uimenu函数在原默认的图形窗口菜单后面添加新的菜单项。

(2)Name属性

取值是字符串,缺省值为空,作为图形串口的标题

(3)NumberTitle属性:

取值是on(缺省值)或者off。决定是否以“Figure No.n:“为标题前缀,这里n是图形窗口的序号,即句柄值。

(4)Resize属性:

取值为on(缺省值)或off。决定在窗口对象建立后可否用鼠标改变该窗口的大小

(5)Position属性

(6)Units属性:

该属性的取值可以是下列字符串的任何一种:

pixel(像素,缺省值),normalized(相对单位),inches(英寸),centimeters(厘米)和points(磅)。

(7)Color属性:

取值可以用字符表示,也可以用三元组表示。缺省值为’k’即黑色。

(8)Pointer属性:

取值是arrow(缺省值)、crosshair、watch、topl、topr、botl、botr、circle、cross、fleur、custom等。

(9)对键盘及鼠标响应属性:

允许对键盘和鼠标键按下这样的动作进行响应。

KeyPressFcn 键盘键按下响应
WindowButtonDownFcn 鼠标键按下响应
WindowButtonMotionFcn 鼠标盈动响应
WindowButtonUpFcn 鼠标键释放响应

4、一个demo

x=linspace(0.2*pi,60);
y=sin(x);
hf=figure(‘Color‘,[0,1,0],‘Position‘,[1,1,450,250],‘Name‘,‘Fuck‘,‘NumberTitle‘,‘off‘,‘MenuBar‘,‘none‘,‘KeyPressFcn‘,‘plot(x,y);axis([0,2*pi,-1,1]);‘);

结果:

二、坐标轴对象

时间: 2024-10-01 01:29:12

MATLAB学习笔记(十)——MATLAB图形句柄的相关文章

matlab学习笔记之matlab基础篇

第1章 Matlab概述 matlab是Mathworks公司推出的一套高性能数值计算和可视化软件,集数值分析,矩阵运算,信号处理和图形显示与一体.同时Matlab也是一种编程语言,被称为第四代编程语言.全称:Matrix  Laboratory(矩阵实验室),matlab出现在20世纪70年代,由Fortran编写,到了90年代,其内核由C语言编写. Matlab常见的交互界面●Command  window(命令窗口):在这个窗口中,可以输入各种matlab命令,函数和表达式.所有操作和运算

matlab学习笔记 bsxfun函数

matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下.   函数bsxfun [功能描述]两个数组间元素逐个计算. [应用场合]当我们想对一个矩阵A的每一列或者每一行与同一个长度相等的向量a进行某些操作(比较大小,乘除等)时,我们只能用循环方法或者利用repmat函数将要操作的向量a复制成和A一样尺寸的矩阵,进而进行操作.从MATLAB R2007a开始

matlab学习笔记(一)单元数组

matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x)  :取最大的整数 ceil(3.18)=4,ceil(3.18)=42.单元数组和结构体作用差不多, 相同点:都是存放不同类型的数据,能实现不同类型数据的存储机制. 不同点:结构体数组的 各个元素下有成员,并且每个成员有自己的名字,而单元数组没有成员和成员 名字的感念.3.单元数组,用[]表示元素间隔:用,表示元素之间的间隔:用:表示行间隔. 例如:c

python基础教程_学习笔记23:图形用户界面

图形用户界面 丰富的平台 在编写Python GUI程序前,需要决定使用哪个GUI平台. 简单来说,平台是图形组件的一个特定集合,可以通过叫做GUI工具包的给定Python模块进行访问. 工具包 描述 Tkinter 使用Tk平台.很容易得到.半标准. wxpython 基于wxWindows.跨平台越来越流行. PythonWin 只能在Windows上使用.使用了本机的Windows GUI功能. JavaSwing 只能用于Jython.使用本机的Java GUI. PyGTK 使用GTK

Swift学习笔记十二:下标脚本(subscript)

下标脚本就是对一个东西通过索引,快速取值的一种语法,例如数组的a[0].这就是一个下标脚本.通过索引0来快速取值.在Swift中,我们可以对类(Class).结构体(structure)和枚举(enumeration)中自己定义下标脚本的语法 一.常规定义 class Student{ var scores:Int[] = Array(count:5,repeatedValue:0) subscript(index:Int) -> Int{ get{ return scores[index];

第十七篇:实例分析(3)--初探WDDM驱动学习笔记(十)

续: 还是记录一下, BltFuncs.cpp中的函数作用: CONVERT_32BPP_TO_16BPP 是将32bit的pixel转换成16bit的形式. 输入是DWORD 32位中, BYTE 0,1,2分别是RGB分量, 而BYTE3则是不用的 为了不减少color的范围, 所以,都是取RGB8,8,8的高RGB5, 6, 5位, 然后将这16位构成一个pixel. CONVERT_16BPP_TO_32BPP是将16bit的pixel转换成32bit的形式 输入是WORD 16BIT中

初探swift语言的学习笔记十(block)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/35783341 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! 在前面一些学习中,原本把闭包给理解成了block尽管有很多相似之处,但block还是有他自己的独特之外.近日,在写oc/swift混合编码时,有时候需要swift回调oc,oc回调swift . 因此我把swift中的 block 常见的声明和写

Swift学习笔记十:属性

1.存储属性       1. 作为特定类或结构实例的一部分,存储属性存储着常量或者变量的值.存储属性可分为变量存储属性(关键字var描述)和常量存储属性(关键字let描述). struct student{ let name = "" var score = 0 } let a = student(name:"小笨狼",score:96)           注意:                ① 定义储存属性时,需要为每一个属性定义一个默认值.在初始化的时候,

python学习笔记十——异常处理

1.try: command except 错误类型,记录错误信息变量: command finally: command try...finally的用处是无论是否发生异常都要确保资源释放代码的执行.一般来说,如果没有发生错误,执行过try语句块之后执行finally语句块,完成整个流程.如果try语句块发生了异常,抛出了这个异常,此时就马上进入finally语句块进行资源释放处理.如下从几个细节讨论finally的特性. 1).try中的return: 当在try语句块中含有return语句

C++ Primer 学习笔记_72_面向对象编程 --句柄类与继承[续]

面向对象编程 --句柄类与继承[续] 三.句柄的使用 使用Sales_item对象能够更easy地编写书店应用程序.代码将不必管理Item_base对象的指针,但仍然能够获得通过Sales_item对象进行的调用的虚行为. 1.比較两个Sales_item对象 在编写函数计算销售总数之前,须要定义比較Sales_item对象的方法.要用Sales_item作为关联容器的keyword,必须能够比較它们.关联容器默认使用keyword类型的小于操作符,可是假设给Sales_item定义小于操作符,