MATLAB图形句柄
来源:互联网 发布:牵机药 知乎 编辑:程序博客网 时间:2024/05/22 07:43
MATLAB图形对象包括:
MATLAB每一个具体图形一定包括计算机屏幕和图形窗口两个对象。
1、定义
MATLAB在创建每一个图形对象时,都会给该对象分配一个唯一确定的值,称其为图形对象句柄。
PS:(1)计算机屏幕句柄默认为0。
(2)图形窗口对象的句柄值为一正整数,并显示在窗口标题栏中。
(3)其他图形对象的句柄为浮点数。
2、获取已有对象的句柄
3、一个demo
close all;clear all;clc;%% 图形对象及其句柄x1=linspace(0,2*pi,30);%首尾为0和2*pi,中间有30个数y1=sin(x1);h0=plot(x1,y1,'r'); %曲线对象的句柄h1=gcf;%图形对象的句柄h2=gca;%坐标轴句柄h3=findobj(gca,'Marker','x');%坐标轴上曲线的句柄,Marker表示标记点的形状
运行结果如下:
属性名:每种对象的每个属性都规定好了名字,一般为其英文单词,一般要用单撇号括起来。
属性值:每种属性名的取值。
二、属性的操作
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:
close all;clear all;clc;%% 图形对象属性x2=0:pi/50:2*pi;y2=sin(x2);z2=cos(x2);plot(x2,y2,'r',x2,z2,'g');h2=get(gca,'Children');%获取所有曲线句柄向量h2for k=1:size(h2) if get(h2(k),'Color')==[0 1 0] %【0,1,0】表示绿色 h2g=h2(k); endendpause;set(h2g,'LineStyle',':','Marker','p');%对绿色线条进行设置
(三)图形对象测创建
一、图形窗口对象
1、定义
图形窗口是MATLAB中很重要的一类图形对象,MATLAB的一切图形图像的输出都是在图形窗口中完成的。
2、调用格式:
句柄变量=figure(属性名1,属性值1,属性名2,属性值2);%属性名和属性值可以缺省,则命令如下句柄变量=figure 或者 figurefigure(窗口句柄) %设置为当前窗口。 %如果窗口句柄写成一个整数,则可以使用这个句柄生成一个新的图形窗口,并定义为当前窗口。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:
x1=linspace(0,2*pi,60);y1=sin(x1);%KeyPressFcn键盘键按下响应h1=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、调用格式:
句柄变量=axes(属性名1,属性值1,属性名2,属性值2,……);%调用axes函数用制动的属性在当前图形窗口创建坐标轴,并将句柄赋给句柄变量。axes 或 句柄变量=axes%用axes函数建立缺省坐标轴axes(坐标轴句柄)%调用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:
ans=get(gca,'Title');set(ans,'Color','r');(6)XLabel、YLabel、ZLabel属性:
取值分别为x,y,z轴说明文字的句柄。其操作和Title属性相同。
demo:
ans=get(gca,'XLabel');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:
x2=linspace(0,2*pi,20);y2=sin(x2);figure;%axes函数可以在同一个图形窗口上建立多个坐标轴(同时显示)axes('Position',[0.2,0.2,0.2,0.7],'GridLineStyle','-.');%该属性是由四个元素构成的向量,其形式为[n1,n2,n3,n4]。这个向量在图形窗口中决定一个矩形区域,坐标轴在其中。plot(y2,x2);grid on;axes('Position',[0.4,0.2,0.5,0.5]);t=0:pi/100:20*pi;x2=sin(t);y2=cos(t);z2=t.*sin(t).*cos(t);plot3(x2,y2,z2);axes('Position',[0.55,0.6,0.25,0.3]);[x2,y2]=meshgrid(-8:0.5:8);z2=sin(sqrt(x2.^2+y2.^2))./sqrt(x2.^2+y2.^2+eps);mesh(x2,y2,z2);
三、曲线对象
1、定义
曲线对象是坐标轴的子对象,它既可以定义二维坐标系中,也可以定义在三维坐标系中
2、MATLAB调用:
句柄变量=line(x,y,z,属性名1,属性值1,属性名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:
t3=0:pi/20:2*pi;y3=sin(t3);y31=cos(t3);f3=figure('Position',[30,100,800,350]);axes('GridLineStyle','-.','XLim',[0,2*pi],'YLim',[-1,1]);%取值都是具有2个元素的数值向量,3个属性分别定义个坐标轴的上下限,缺省为[0,1]。line('XData',t3,'YData',y3,'LineWidth',2);%XData,YData取值都是数值向量或矩阵,分别代表曲线对象的3个坐标轴数据,LineWidth定义线宽。line(t3,y31);grid on;
四、文字对象
1、用处:
主要用于给图形添加文字标注,可以使用LaTeX文本。
2、MATLAB调用:
句柄变量=text(x,y,z,'说明文字',属性名1,属性值1,属性名2,属性值2,……);%说明文字可以使用LaTeX控制字符3、文字对象的其他常用属性如下:
(1)Color属性:
定义文字对象的颜色。
(2)String属性:
取值是字符串或者字符串矩阵,记录文字标注的内容。
(3)Interpreter属性:
取值是latex(缺省值)或none,该属性控制对文字标注内容的解释方式,即LaTeX方式或者ASCII方式。
(4)FontSize属性:
定义文字对象的大小,缺省值为10磅。
(5)Rotation属性:
取值是数值量,缺省值为0.定义文字对象的旋转角度。取正值是表示逆时针旋转。
4、一个demo:
x4=-pi:0.1:pi;y41=sin(x4);y42=cos(x4);figure;h4=line(x4,y41,'LineStyle',':','Color','g');line(x4,y42,'LineStyle','--','Color','b');xlabel('-\pi \leq \Theta \leq \pi');ylabel('sin(\Theta)');title('Plot of sin(\Theta)');text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi\div4)','FontSize',12);set(h4,'Color','r','LineWidth',2);
五、曲面对象
1、概念:
曲面对象也是坐标轴的子对象,它定义在三维坐标系中,而坐标系可以在任何视点下。
2、调用格式:
句柄变量=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:
x5=linspace(0,4*pi,100);figure;[x5,y5]=meshgrid(x5);z5=sin(x5);axes('view',[-37.5,30]);h5=surface(x5,y5,z5,'FaceColor','w','EdgeColor','flat');grid on;set(get(gca,'XLabel'),'String','X-axis'); %设置x轴说明set(get(gca,'YLabel'),'String','Y-axis'); %设置y轴说明set(get(gca,'ZLabel'),'String','Z-axis'); %设置z轴说明title('mesh-surf');set(h5,'FaceColor','interp','EdgeColor','interp');
转自:http://www.cnblogs.com/BlueMountain-HaggenDazs/p/4306865.html
- 【Matlab】 matlab图形句柄
- matlab图形句柄总结
- MATLAB图形句柄
- matlab句柄图形
- MATLAB图形句柄
- matlab图形句柄属性总结
- matlab图形句柄属性总结
- 11.10 Matlab中的图形句柄
- matlab图形句柄属性总结
- matlab hgsave and hgload 存取句柄图形
- Matlab中的图形句柄(转载)
- Matlab画图 句柄修改图形
- matlab学习笔记 图形句柄属性总结
- Matlab中的图形句柄(转载)
- Matlab中的图形句柄(转载)
- Matlab中的图形句柄(转载)
- MATLAB程序设计教程(10)——MATLAB图形句柄
- MATLAB句柄图形对象的创建函数与函数描述
- hdu 1231
- 合并表记录
- 仿QQ左滑打开或删除
- NOIP模拟题 期望DP 礼物
- java内部类详载
- MATLAB图形句柄
- activemq+spring简单记录
- CSS3 做一个有闪光效果的进度条
- mysql深入一
- python编程快速上手-第六章实践项目解答
- virtualbox安装oracle linux后找不到eth0
- Mybatis源码详解之接口方法被执行流程源码解析
- C语言编程基本规范
- Maven私服