(一)图形对象及其句柄

一、图形对象

MATLAB图形对象包括:

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

二、图形对象句柄

1、定义

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

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

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

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

2、获取已有对象的句柄

3、一个demo

  1. x=linspace(0,2*pi,30);
  2. y=sin(x);
  3.  
  4. h0=plot(x,y,'r') %曲线对象的句柄
  5. h1=gcf %图形窗口句柄
  6. h2=gca %坐标轴句柄
  7. h3=findobj(gca,'Marker','x') %坐标轴上曲线的句柄

运行结果如下:

  1. h0 =
  2.  
  3. 174.0016
  4.  
  5. h1 =
  6.  
  7. 1
  8.  
  9. h2 =
  10.  
  11. 173.0011
  12.  
  13. h3 =
  14.  
  15. Empty matrix: 0-by-1

(二)图形对象属性

一、属性名与属性值

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

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

二、属性的操作

1、set函数

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

(1)调用格式

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

(2)一个demo。

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

2、get函数

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

(1)调用格式

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

(2)demo

  1. x=linspace(0.2*pi,20);
  2. y=sin(x);
  3. h=plot(x,y);
  4. col=get(h,'Color'); %得到曲线的颜色
  5.  
  6. 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:

  1. x=0:pi/50:2*pi;
  2. y=sin(x);
  3. z=cos(x);
  4. plot(x,y,'r',x,z,'g');
  5.  
  6. H1=get(gca,'Children'); %获取两曲线句柄向量H1
  7. for k=1:size(H1)
  8. if get(H1(k),'Color')==[0 1 0] %【0,1,0】表示绿色
  9. H1g=H1(k); %获取绿色线条句柄
  10. end
  11. end
  12.  
  13. pause; %暂停
  14. set(H1g,'LineStyle',':','Marker','p'); %对绿色线条进行设置。

结果:

按下任意键

(三)图形对象测创建

一、图形窗口对象

1、定义

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

2、调用格式:

  1. 句柄变量=figure(属性名1,属性值1,属性名2,属性值2);
  2. %属性名和属性值可以缺省,则命令如下
  3. 句柄变量=figure 或者 figure
  4.  
  5. figure(窗口句柄) %设置为当前窗口。
  6. %如果窗口句柄写成一个整数,则可以使用这个句柄生成一个新的图形窗口,并定义为当前窗口。
  7.  
  8. close(窗口句柄) %关闭图形窗口
  9. close all; %关闭全部图形窗口
  10. 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

  1. x=linspace(0.2*pi,60);
  2. y=sin(x);
  3. 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]);');

结果:

二、坐标轴对象

1、概念

坐标轴对象是图形窗口对象的子对象,每个图形窗口中可以定义多个坐标轴对象,但只有一个坐标轴是当前坐标轴,在没有指明坐标轴,所有的图形图像都是在当前坐标轴中输出。

2、调用格式

  1. 句柄变量=axes(属性名1,属性值1,属性名2,属性值2,……);
  2. %调用axes函数用制动的属性在当前图形窗口创建坐标轴,并将句柄赋给句柄变量。
  3.  
  4. axes 句柄变量=axes
  5. %用axes函数建立缺省坐标轴
  6.  
  7. axes(坐标轴句柄)
  8. %调用axes函数将之设定为当前坐标轴,且坐标轴所在的图形窗口自动成为当前图形窗口。

3、坐标轴的常用属性(除了公共属性)

(1)Box属性:

取值是on或者off(缺省值)。它决定坐标轴是否带有边框。

(2)GridLineStyle属性:

取值是‘:’(缺省值)、‘-’、‘-.’、‘--’、‘none’。该属性定义网格线的类型

(3)Position属性:

该属性是由四个元素构成的向量,其形式为[n1,n2,n3,n4]。这个向量在图形窗口中决定一个矩形区域,坐标轴在其中。

(n1,n2)是左下角的坐标,(n3,n4)是矩形的宽和高。单位由Units属性决定

(4)Unit属性:

取值是normalized(相对单位,为缺省值)、inches(英寸)、centimeters(厘米)和points(磅)。

(5)Title属性:

该属性的取值是坐标轴标题文字对象的句柄,可以通过该属性对坐标轴标题文字对象进行操作。

demo:

  1. ans=get(gca,'Title');
  2. set(ans,'Color','r');

(6)XLabel、YLabel、ZLabel属性:

取值分别为x,y,z轴说明文字的句柄。其操作和Title属性相同。

demo:

  1. ans=get(gca,'XLabel');
  2. set(ans,'String','Values of X axis');

(7)XLim、YLim、ZLim属性:

取值都是具有2个元素的数值向量。3个属性分别定义个坐标轴的上下限。缺省为[0,1]。

(8)XScale、YScale、ZScale属性:

取值都是’linear’(缺省值)或’log’,这些属性定义个坐标轴的刻度类型

(9)View属性:

取值是两个元素的数值向量,定义视点方向。

4、一个demo:

PS:axes函数可以在同一个图形窗口上建立多个坐标轴(同时显示)

  1. clf;
  2. x=linspace(0.2*pi,20);
  3. y=sin(x);
  4.  
  5. axes('Position',[0.2,0.2,0.2,0.7],'GridLineStyle','-.');
  6. plot(y,x);
  7. grid on;
  8.  
  9. axes('Position',[0.4,0.2,0.5,0.5]);
  10. t=0:pi/100:20*pi;
  11. x=sin(t);
  12. y=cos(t);
  13. z=t.*sin(t).*cos(t);
  14. plot3(x,y,z);
  15.  
  16. axes('Position',[0.55,0.6,0.25,0.3]);
  17. [x,y]=meshgrid(-8:0.5:8);
  18. z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);
  19. mesh(x,y,z);

三、曲线对象

1、定义

曲线对象是坐标轴的子对象,它既可以定义二维坐标系中,也可以定义在三维坐标系中

2、MATLAB调用:

  1. 句柄变量=line(x,y,z,属性名1,属性值1,属性名2,属性值2,……);
  2. %x,y,z为三维坐标

3、曲线对象的常用属性(除了公共属性)

(1)Color属性:

该属性的取值是代表某颜色的字符或者RGB值。定义曲线的颜色。

(2)LineStyle属性:

定义线性

(3)LineWidth属性:

定义线宽,缺省值为0.5磅。

(4)Marker属性:

定义数据点标记符号,缺省值为none

(5)MarkerSize属性:

定义数据点标记符号的大小,缺省值为6磅。

(6)XData,YData,Zdata属性:

取值都是数值向量或矩阵,分别代表曲线对象的3个坐标轴数据。

4、一个demo

  1. t=0:pi/20:2*pi;
  2. y1=sin(t);
  3. y2=cos(t);
  4. figh=figure('Position',[30,100,800,350]);
  5. axes('GridLineStyle','-.','XLim',[0,2*pi],'YLim',[-1,1]);
  6. line('XData',t,'YData',y1,'LineWidth',2);
  7. line(t,y2);
  8. grid on;

四、文字对象

1、用处:

主要用于给图形添加文字标注,可以使用LaTeX文本。

2、MATLAB调用:

  1. 句柄变量=text(x,y,z,'说明文字',属性名1,属性值1,属性名2,属性值2,……);
  2. %说明文字可以使用LaTeX控制字符

3、文字对象的其他常用属性如下:

(1)Color属性:

定义文字对象的颜色。

(2)String属性:

取值是字符串或者字符串矩阵,记录文字标注的内容。

(3)Interpreter属性:

取值是latex(缺省值)或none,该属性控制对文字标注内容的解释方式,即LaTeX方式或者ASCII方式、

(4)FontSize属性:

定义文字对象的大小,缺省值为10磅。

(5)Rotation属性:

取值是数值量,缺省值为0.定义文字对象的旋转角度。取正值是表示逆时针旋转。

4、一个demo

  1. x=-pi:0.1:pi;
  2. y=sin(x);
  3. y1=sin(x);
  4. y2=cos(x);
  5.  
  6. h=line(x,y1,'LineStyle',':','Color','g');
  7. line(x,y2,'LineStyle','--','Color','b');
  8.  
  9. xlabel('-\pi \leq \Theta \leq \pi');
  10. ylabel('sin(\Theta)');
  11.  
  12. title('Plot of sin(\Theta)');
  13.  
  14. text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi\div4)','FontSize',12);
  15.  
  16. set(h,'Color','r','LineWidth',2);

答案下:

五、曲面对象

1、概念:

曲面对象也是坐标轴的子对象,它定义在三维坐标系中,而坐标系可以在任何视点下。

2、调用格式:

  1. 句柄变量=surface(x,y,z,属性名1,属性值1,属性名2,属性2,……);;

3、曲面对象的属性:

(1)EdgeColor属性:

取值是代表某颜色的字符或RGB值,还可以是flat、interp或者none。缺省为黑色。定义曲面网格线的颜色或着色方式

(2)FaceColor属性:

取值是代表某颜色的字符或RGB值,还可以是flat(缺省值),interp或none。定义曲面网格片的颜色或着色方式

(3)LineStyle属性:

定义曲面网格线的线型

(4)LineWidth属性:

定义曲面网格线的线宽,缺省值为0.5磅。

(5)Marker属性:

曲面数据点标记符号,缺省值为none。

(6)MarkerSize属性:

曲面数据点标记符号的大小,缺省值为6磅。

(7)XData,YData,ZData属性:

3种属性的取值都是数值向量或矩阵,分别代表曲面对象的3个坐标轴数据。

4、一个demo

  1. x=linspace(0,4*pi,100);
  2.  
  3. [x,y]=meshgrid(x);
  4. z=sin(x);
  5. axes('view',[-37.5,30]);
  6. hs=surface(x,y,z,'FaceColor','w','EdgeColor','flat');
  7. grid on;
  8.  
  9. set(get(gca,'XLabel'),'String','X-axis'); %设置x轴说明
  10. set(get(gca,'YLabel'),'String','Y-axis'); %设置y轴说明
  11. set(get(gca,'ZLabel'),'String','Z-axis'); %设置z轴说明
  12.  
  13. title('mesh-surf');
  14.  
  15. pause;
  16.  
  17. set(hs,'FaceColor','interp','EdgeColor','interp');

结果:

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

  1. matlab学习笔记13_3创建函数句柄

    一起来学matlab-matlab学习笔记13函数 13_3 创建函数句柄 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://ww2.mathworks.cn/help ...

  2. Matlab学习笔记1—MATLAB基础知识

    1.1  MATLAB系统环境 1.MATLAB操作界面的组成 (1)MATLAB主窗口 (2)命令行窗口:命令行窗口用于输入命令并显示命令的执行结果. (3) 当前文件夹窗口 如何设置当前文件夹呢? ...

  3. Matlab学习笔记 figure函数

    Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...

  4. matlab学习笔记 bsxfun函数

    matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...

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

    matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x)  :取最大的整数 ceil(3.18)=4,ceil( ...

  6. matlab学习笔记---(1)

    Matlab学习笔记 一. Desktop Basics (Matlab 基础知识) 当你打开Matlab的时候,matlab按照以下默认的方式展示出来. 该桌面主要包括以下几部分内容: 当前文件夹: ...

  7. 【数学建模】MATLAB学习笔记——函数式文件

    MATLAB学习笔记——函数式文件 引入函数式文件 说明: 函数式文件主要用于解决计算中的参数传递和函数调用的问题. 函数式的标志是它的第一行为function语句. 函数式文件可以有返回值,也可以没 ...

  8. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(十) indigo Gazebo rviz slam navigation

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 moveit是书的最后一章,由于对机械臂完全不知,看不懂 ...

  10. python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置

    python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置Download JetBrains Python IDE :: PyCharmhttp://www. ...

随机推荐

  1. Android-深入理解android自定义属性(AttributeSet,TypedArray)

    属性 自定义属性,首先要定义出来属性,我们新建一个attrs.xml: <?xml version="1.0" encoding="utf-8"?> ...

  2. 记录一次centos6.4版本的VSFTP本地用户登陆的配置

    其实vsftp是一个非常常用而且简单的服务,但是假如服务不是你配置的前者没有留下参考档案,的确是件头疼的事儿,特此记录下. 首先是vsftp的安装当然安装有源码的编译和yum等 这里我选择rpm包的y ...

  3. 用JSON-server模拟REST API(三) 进阶使用

    用JSON-server模拟REST API(三) 进阶使用 前面演示了如何安装并运行 json server , 和使用第三方库真实化模拟数据 , 下面将展开更多的配置项和数据操作. 目录: 配置项 ...

  4. 代码规范和常用的js插件以及测试工具

    1.代码规范 .model层 1.1.1database file_proerty 1.1.2java fileProperty. 1.2.字段要有空指针 1.3.不创建爱数据库外键约束 1.4.已知 ...

  5. vim常用指令及快捷键(持续更新)

    (这些文章都是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com) 发现了个非常赞的网站  http://openvim.com/ 以下很多操作都是安装好vund ...

  6. C++中的memset()函数 ------------转自:http://www.360doc.com/content/10/1006/18/1704901_58866679.shtml

    memset()函数可以对大内存的分配进行很方便的操作(初始化),所谓“初始化”,当然是指将你定义的变量或申请的空间赋予你所期望的值,例如语句int i=0;就表明定义了一个变量i,并初始化为0:如果 ...

  7. 电够动力足——认识主板上的CPU供电模块

    CPU供电模块有啥用 CPU供电模块从字面上理解,就是专给CPU供电的一个电子元器件组合.因为CPU工作时就跟发动机一样,油(电)提供得稳不稳定.品质高不高就是CPU供电模块干的事情.反过来说,如果C ...

  8. win7+ubuntu双系统中卸载ubuntu方法

    双系统中,如果要卸载ubuntu是不能够直接卸载的,需要使用一些特殊的方法.下面就为大家详细的介绍介绍. Step1 MBR引导区修复: 进入win7,下载个软件MbrFix,放在C:\windows ...

  9. 10 Python Optimization Tips and Issues

    转自: http://www.algorithm.co.il/blogs/computer-science/10-python-optimization-tips-and-issues/

  10. Convert Sorted Array to Binary Search Tree With Minimal Height

    Given a sorted (increasing order) array, Convert it to create a binary tree with minimal height. Exa ...