MATLAB图形句柄(MATLAB程序设计教程)
MATLAB3+-+MATLAB绘图与程序设计+(2)
![MATLAB3+-+MATLAB绘图与程序设计+(2)](https://img.taocdn.com/s3/m/e0bc0dda5a8102d277a22fc1.png)
(4) 双纵坐标图 语法: plotyy(x1,y1,x2,y2) %以左、右不同纵轴绘制两
条曲线
说明:左纵轴用于(x1,y1)数据,右纵轴用于 (x2,y2)数据来绘制两条曲线。坐标轴的范围、 刻度都自动产生。
例8续 用plotyy函数实现在同一图形窗口绘制两 条曲线。
例5. 绘制三条曲线。
x=0:0.1:2*pi;
plot(x,sin(x),x,cos(x),x,sin(3*x)) %画三条曲线
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
绘制曲线的一般步骤
步骤
内容
1 曲线数据准备:对于二维曲线,横坐标和纵坐标数据变量;对 于三维曲面,矩阵参变量和对应的函数值。
说明:在设置了“hold on”后,如果画多个图 形对象,则在生成新的图形时保留当前坐标系 中已存在的图形对象,MATLAB会根据新图 形的大小,重新改变坐标系的比例。
例8 在同一窗口画出函数sinx在区间[0 2π]的 曲线和cosx在区间[-π π]的曲线。
x1=0:0.1:2*pi; plot(x1,sin(x1)) hold on x2=-pi:.1:pi; plot(x2,cos(x2))
2 指定图形窗口和子图位置:默认时,打开Figure No.1窗口或当 前窗口、当前子图;也可以打开指定的图形窗口和子图。
3 设置曲线的绘制方式:线型、色彩、数据点形。
4 设置坐标轴:坐标的范围、刻度和坐标分格线
MATLAB GUI程序设计
![MATLAB GUI程序设计](https://img.taocdn.com/s3/m/30edb9f5f61fb7360b4c652e.png)
按钮控件
图形窗口
坐标轴
句柄( 句柄(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在作图中的常见问题](https://img.taocdn.com/s3/m/87c3cff3f121dd36a22d8236.png)
26
15.坐标值的修改
(2)修改坐标 语句实现: 我们用axes句柄的xticklabel (或yticklabel) 这一项就可以了。 看下面这一段程序:
27Βιβλιοθήκη 16.放大所画的图形MATLAB所画出的图形是其默认的大小,我们也 可以对图形的大小进行重新设定:
set(gcf,'position',[x0 y0 xL yL]);
19
11.图形标注的一些问题
下面以xlabel为例,讲一下常见的几个问题:
xlabel(‘t^{hit}’); %标注上脚标 xlabel(‘Y_{Lib}’); %标注下脚标
花括号{}的作用是使多个字符都处于相同的状态。
xlabel({‘zjliu’,‘on BBS’}); %多行标注
效果见下图:
11
12
13
7.双Y轴曲线的坐标标注
我们注意到MATLAB命令窗的画兰颜色的 那一行, String = 这是加入文本信息的一个参数选项。
为此我设计了如下的语句:
14
8.双Y轴曲线的坐标标注
所用的几行语句: d1=get(H(1),'ylabel'); set(d1,’string’,’sin(x)’); d2=get(H(2),’ylabel’); set(d2,’string’,’exp(x)’); xlabel(‘x zjliu’) 得到的图形如下:
'fontsize',20,'color','Magenta') xlim([0 2*pi]); 效果见下页:
17
18
10.图形标注的一些问题
常用的几个标注的函数是: text; xlabel (ylabel, zlabel); title 在标注的时候字体,位置以及方向等可以 使用MATLAB自己默认的,也可以自己去 设定。
【转】matlab图形句柄详解(一)
![【转】matlab图形句柄详解(一)](https://img.taocdn.com/s3/m/af8406c8cf2f0066f5335a8102d276a2002960c7.png)
【转】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’ )。
MATLAB第9章图形句柄
![MATLAB第9章图形句柄](https://img.taocdn.com/s3/m/378349767fd5360cba1adb2f.png)
9.2 图形窗口与坐标轴
♠除根对象外,所有图形对象都可以由与之 同名的低层函数创建。所创建的对象置于 适当的父对象之中,当父对象不存在时, Matlab会自动创建它。如:Line函数。 ♠创建对象的低层函数调用格式类似,关键 要了解对象的属性及其取值。前面已介绍 各对象的公共属性,下面介绍图形窗口和 坐标轴的创建方法及特殊属性。
如果在调用get函数时省略属性名,则将 返回句柄所有的属性值。 clc;clear;close all; x=0:pi/10:2*pi; h=plot(x,sin(x)) set(h,'color','r','linestyle',':','Marker','p') get(h)
用get函数可获取屏幕的分辨率: V=get(0,'screensize')
MATLAB为每个图形窗口提供了很多属性。 这些属性及其取值控制着图形窗口对象。
除公共属性外,其他常用属性如下: MenuBar属性、Name属性、NumberTitle属性、 Resize属性、Position属性、Units属性、Color 属性、Pointer属性、KeyPressFcn(键盘键按下 响应)、WindowButtonDownFcn(鼠标键按下响 应)、WindowButtonMotionFcn(鼠标移动响应) 及WindowButtonUpFcn(鼠标键释放响应)等。
9.1 图形对象及其句柄
1.图形对象 MATLAB中的每一个具体的图形都是由 若干个不同的图形对象组成的。 所有的图形对象都按父对象和子对象的 方式组成层次结构,如图9-1。
计算机屏幕 图形窗口 用户界面对象 坐标轴 标注对象
matlab图形操作
![matlab图形操作](https://img.taocdn.com/s3/m/ee108e0dfbd6195f312b3169a45177232f60e4a9.png)
matlab图形操作本⽂对matlab中利⽤图形句柄对图⽚属性进⾏设置的操作进⾏简单的总结说明:(1)对图窗和坐标轴属性进⾏整体设置可以通过gcf和gca语句获取当前图窗句柄和坐标轴句柄,通过该句柄可以对图窗和坐标轴的各项属性进⾏操作。
图窗和坐标轴分别包含如下属性:% 图窗属性... ...Children: [1×1 Axes] Color: [0.9400 0.9400 0.9400]Colormap: [256×3 double] CurrentAxes: [1×1 Axes]... ...InnerPosition: [680 558 560 420] PaperUnits: 'centimeters'OuterPosition: [672 550 576 514] Position: [680 558 560 420]Units: 'pixels'% 坐标轴属性... ...Box: 'on' BoxStyle: 'back'Children: [1×1 Line] Color: [1 1 1]FontAngle: 'normal' FontName: 'Helvetica'FontSize: 10 FontSizeMode: 'auto'FontSmoothing: 'on' FontUnits: 'points'FontWeight: 'normal' GridColor: [0.1500 0.1500 0.1500]GridLineStyle: '-' Legend: [0×0 GraphicsPlaceholder]LineWidth: 0.5000 OuterPosition: [0 0 1 1]Parent: [1×1 Figure] Position: [0.1300 0.1100 0.7750 0.8150]Title: [1×1 Text] TitleFontWeight: 'normal'Units: 'normalized' UserData: []View: [0 90] Visible: 'on'... ...XAxis: [1×1 NumericRuler] XAxisLocation: 'bottom'XColor: [0.1500 0.1500 0.1500] XColorMode: 'auto'XDir: 'normal' XGrid: 'off'XLabel: [1×1 Text] XLim: [0 100]XScale: 'linear' XTick: [0 10 20 30 40 50 60 70 80 90 100]XTickLabel: {11×1 cell} XTickLabelRotation: 0YAxis: [1×1 NumericRuler] YColor: [0.1500 0.1500 0.1500]YGrid: 'off' YLabel: [1×1 Text]YLim: [0 100] YScale: 'linear'YTick: [0 10 20 30 40 50 60 70 80 90 100] YTickLabel: {11×1 cell}YTickLabelRotation: 0 ZLabel: [1×1 Text]ZLim: [-1 1] ZScale: 'linear'ZTick: [-1 0 1] ZTickLabel: ''ZTickLabelRotation: 0... ...上⾯仅仅是展⽰了图窗和坐标轴部分重要且常⽤的属性,它们的全部属性可通过查matlab的帮助⽂档或直接在matlab的命令⾏上输⼊gcf、gca或通过如下图所⽰的属性窗⼝进⾏查询和设置。
matlab句柄属性
![matlab句柄属性](https://img.taocdn.com/s3/m/4d540832b90d6c85ec3ac64c.png)
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')返回那些用户可以设置默认值的所有对象的属性,同时显示可设置的属性值。
MATLAB句柄图形
![MATLAB句柄图形](https://img.taocdn.com/s3/m/2a4bafc40508763230121203.png)
句柄图形句柄图形对象句柄图形是对底层图形例程集合的总称,实际上是进行生成图形的工作句柄图形的概念:一幅图的每一组成部分是一个对象,每一个对象有一系列句柄和它相关,每一个对象又按需要可以改变属性1、图形框架窗口对象(Figure)(1)、绘制图形的图形框架窗口对象gca:获得当前坐标轴对象的句柄gcbf:获得当前正在执行调用的图形对象的句柄gcbo:获得当前正在执行调用的对象的句柄gcf:获得当前图形对象的句柄gco:获得当前对象的句柄get(gcf) %由于当前状态下不存在图形窗口,系统生成新的图形窗口(2)、核心(Core)对象核心对象:包括直线、文本和特殊对象(光、图像和面图)等基本的绘图命令坐标系对象:包括线、面图和等高线图等描述的数据对象MATLAB中创建核心对象的函数axes:坐标轴image:MATLAB中的图像light:光源line:二维图形中最基本的图形对象patch:按指定方式填充多边形rectangle:具有可设置边界和表面颜色的二维图形对象surface:图形表面text:图形中的文本[x y]=meshgrid([-2:0.4:2]);Z=x.*exp(-x.^2-y.^2);fh=figure('Position',[350 275 600 450],'Color','w');ah=axes('Color',[0.8 0.8 0.8],'XTick',[-2 -1 0 1 2],...'YTick',[-2 -1 0 1 2]);sh=surface('XData',x,'YData',y,'ZData',Z,...'FaceColor',get(ah,'Color')+0.1,...'EdgeColor','k','Marker','o',...'MarkerFaceColor',[0.5 1 0.85]);view(3)(3)、绘图(Plot)对象绘图对象的父对象可以是坐标轴对象或是群对象MATLAB中绘图对象及其绘图命令areaseries:用于创建area图barseries:用于创建bar图contourgroup:用于创建contour图errobarseries:用于创建errorbar图lineseries:提供给绘制线型图的plot和plot3等函数使用quivergroup:用于创建quiver和quiver3图形scattergroup:用于创建scatter和scatter3图形stairseries:用于创建阶梯图形stemseries:用于创建stem和stem3图形surfaceplot :提供给surf和mesh群函数使用[x y z]=peaks;[c h]=contour(x,y,z);set(h,'LineWidth',3,'LineStyle',':')(4)、注释对象图形编辑工具栏Insert菜单注释函数x=-2*pi:pi/12:2*pi;y=x.^2;subplot(2,2,1:2)plot(x,y)h1=subplot(223);y=x.^4;plot(x,y)h2=subplot(224)y=x.^5;plot(x,y)%定义注释矩形的位置和大小p1=get(h1,'Position');t1=get(h1,'TightInset');p2=get(h2,'Position');t2=get(h2,'TightInset');x1=p1(1)-t1(1);y1=p1(2)-t1(2);x2=p2(1)-t2(1);y2=p2(2)-t2(2);w=x2-x1+t1(1)+p2(3)+t2(3);h=p2(4)+t2(2)+t2(4);%创建注释矩阵来环绕下面两个子图annotation('rectangle',[x1 y1 w h],...'FaceAlpha',0.2,'FaceColor','red','EdgeColor','red');通用函数get和set1、get函数get(handle,’PropertyName’):得到对象的属性及其属性值Hf_1=figure('color','w')p=get(Hf_1,'position') %位置p=get(Hf_1,'Children') %子对象p=get(Hf_1,'Color') %颜色get(Hf_1) %整个图形的属性2、set函数set(H,’PropertyName’,PropertyValue):可以同时设置多个属性的值set(H,a):a为结构体,字段名为图形对象的属性名,字段值为属性值set(H,pn,pv):通过单元型变量为图形对象进行属性赋值,其中pn和pv为单元型变量,pn 为1*n的字符型单元变量,其分量为图形对象的属性名,pv可以是m*n的单元型变量,这里m为句柄数组H的长度,即m=length(H)x=-2*pi:pi/12:2*pi;y=x.^2+x.^3;h=figure;plot(x,y);set(h,'position',[232 248 560 420])set(h,'units') %帮助set(h,'position') %帮助figure('Color','blue','NumberTitle','off','Name','My Figure')Hf_fig=figureHf_line=lineset(Hf_line)get(Hf_line)x=linspace(-2*pi,2*pi,200);y=sin(x);Hf_sin=plot(x,y);set(Hf_sin,'Color',[1 0.5 0],'LineWidth',3)z=cos(x);hold onHf_cos=plot(x,z);set(Hf_cos,'Color',[0.75 0.75 1])查找对象Hf_fig=gcf:返回当前图形的句柄Hf_ax=gca:返回当前图形的当前坐标轴句柄Hx_obj=gco或是Hx_obj=gco(Hf_fig):获取当前对象findobj函数Hx=findobj(‘P1name’,P1value,…):返回根部和根部以下的那些属性值与findobj参数项匹配的对象句柄Hx=findobj(Objecthandle,‘P1name’,P1value,…):限定在Objecthandle中列出的对象和它们的子对象Hx=findobj(Objecthandle,’flat’,‘P1name’,P1value,…):限定在Objecthandle中列出的对象H=findobj:返回根对象和它所有子对象的句柄H=findobj(Objecthandle):返回Objecthandle中列出的对象和它们的子对象的句柄当前对象的定义:用鼠标刚刚点过的对象x=linspace(-pi,pi,100);y=sin(x);z=cos(x);plot(x,y,'r',x,z,'g');H1_lines=get(gca,'Children');for k=1:size(H1_lines)if get(H1_lines(k),'color')==[0 1 0] %查找图中绿色线条的句柄H1_green(k)=H1_lines(k);endendH1_green堆积次序堆积次序决定哪一对象叠加在其他对象上,最后被创建的对象在堆栈顶部默认属性使用set函数默认属性名:Default+属性名set(0,'DefaultAxesColorOrder',[0 0 0],...'DefaultAxesLineStyleOrder','-|--|:|-.')z=peaks;plot(1:49,z(4:7,:))。
第6章 MATLAB高级图形设计
![第6章 MATLAB高级图形设计](https://img.taocdn.com/s3/m/65ae6f5bfe4733687e21aac3.png)
%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教程详解 (8)
![matlab教程详解 (8)](https://img.taocdn.com/s3/m/632dfbbc84254b35eefd3495.png)
第九章句柄图形与第6章的高层指令相比,本章的内容更深入MATLAB可视化功能的内核。
编写本章的目的有两个:一,使读者更深入地理解高层绘图指令,从而可绘制出更精细更生动更个性的图形;二,使读者能利用低层图形指令和图形对象属性开发专用绘图函数。
本章在内容安排上有如下考虑:●保证概念、结构和方法的完整性:本章的前6节内容按由表及里、由浅入深的原则系统阐述句柄图形体系、图形对象、属性和操作方法。
●突出要点、新点和难点:句柄图形体系有11个基本图形对象,每个对象的属性少则20几个,多则近百个。
对此,MATLAB自带资料有详尽的文字说明。
因此,本章只对最常用的、不可或缺的、以及较难掌握的内容进行说明。
●强调“可操作性”体现“范例引导概念”的本书宗旨:针对MATLAB自带资料缺少完整、可操作应用实例的弱点,本章设计了17个算例,其中9个精心设计的完整应用范例就占本章一半以上篇幅。
读者通过阅读或操作这些范例,可掌握各指令、属性之间的有机配合,从而更具体更真切地理解句柄图形。
在本章内容正式展开之前,先把MATLAB随带资料中涉及各对象属性的文件及查阅方法罗列如下。
读者应重视这些最原始、最权威、最细节、任何其它书籍不能代替的资料。
●使用Adobe Acrobat Reader阅读(或打印)以下PDF文件help\pdf_doc\matlab\graphg.pdf ;help\pdf_doc\matlab\refbook.pdf, refbook2.pdf, refbook3.pdf ;●使用Help Navigator/Browser帮助导航/浏览器或直接指令help查看有关图形对象的资料。
如help figure 可直接得到有关图对象的属性描述。
●利用get , set 指令在MATLAB指令窗中,直接查询对象属性。
本章内容已根据MATLAB6.5版中运行情况修正。
但值得指出:MATLAB从5.x版向6.x版的升级对本章内容的扩展和影响很小。
Matlab中的函数句柄与匿名函数使用方法
![Matlab中的函数句柄与匿名函数使用方法](https://img.taocdn.com/s3/m/5a3e6cff2dc58bd63186bceb19e8b8f67c1cefc3.png)
Matlab中的函数句柄与匿名函数使用方法Matlab是一种非常强大的数值计算和科学编程工具,它提供了各种功能和工具箱,便于用户进行各种数值计算和科学研究。
在Matlab中,函数句柄和匿名函数是非常实用的特性,它们可以使我们的代码更加灵活和模块化。
本文将深入探讨在Matlab中函数句柄和匿名函数的使用方法。
一、函数句柄的介绍和使用方法1.1 函数句柄的定义函数句柄是一种特殊类型的变量,它可以用来保存函数的引用。
在Matlab中,我们可以使用@符号来定义一个函数句柄。
例如,假设我们有一个名为"myFunc"的函数,我们可以通过以下方式定义一个函数句柄:```matlabfuncHandle = @myFunc;```1.2 函数句柄的传递和调用函数句柄可以作为参数传递给其他函数,也可以在代码中被调用。
例如,我们可以将函数句柄作为参数传递给另一个函数,使其在需要时调用相应的函数。
示例代码如下:```matlabfunction result = compute(func, arg)result = func(arg);endfuncHandle = @myFunc;arg = 10;output = compute(funcHandle, arg);```在上面的示例中,我们定义了一个名为"compute"的函数,它接受一个函数句柄和一个参数作为输入,并返回函数的结果。
通过传递函数句柄"funcHandle"给"compute"函数,我们可以调用"myFunc"函数并得到结果"output"。
1.3 匿名函数的介绍和使用方法匿名函数是一种在不定义独立函数的情况下创建临时函数的方法。
它可以用来快速定义简单函数,而无需命名。
在Matlab中,我们可以使用"@"符号来创建匿名函数。
MATLAB程序设计教程总结
![MATLAB程序设计教程总结](https://img.taocdn.com/s3/m/03fdf24c915f804d2b16c1a1.png)
MATLAB程序设计教程总结MATLAB程序设计教程总结MATLAB程序设计教程总结一、MATLAB操作基础1、MATLAB的主要功能:(1)数值计算和符号计算功能(2)绘图功能(3)编辑语言功能(4)拓展功能2、MATLAB的安装为执行安装盘上的setp.exe文件来启动安装过程,然后按照系统提示进行操作即可。
3、MATLAB的六种操作界面:主窗口、命令窗口、工作空间窗口、当前目录窗口、命令历史窗口、start按钮。
4、MATLAB可通过path命令或对话框设置搜索路径。
5、进入MATLAB帮助界面的3种方法:(1)单击MATLAB主窗口工具栏中的help按钮(2)选择help菜单中前4项的任意一项(3)在命令窗口中输入helpwith、helpdesk或doc命令6、Help、lookfor及模糊查询为MATLAB帮助命令二、MATLAB矩阵及计算1、在MATLAB中变量名是以字母开头,后接字母、下划线的字符序列,最多允许有63个字符,且变量区分大小写,关键字和函数名不能作为变量名。
2、预定义变量:ans、eps、pi、i、j、inf、Inf、NaN、nan、nargin、nargout、realmax、realmin、lasterr、lastwarn。
3、Clear命令删除工作空间中的变量,who和whos用于显示在工作空间中一直驻留的变量名清单。
4、数据输出格式有:formatshort、formatshorte、formatlong、formatlonge、formatbank、formathex、formatt。
5、矩阵的拆分:(1)利用冒号表达式获得子矩阵(2)利用空矩阵删除矩阵的元素(3)利用reshpe(A,m,n)函数可以改变矩阵形状.6、特殊矩阵:zeros,ones,eye,rand.randn,magic(n),vander(n),hilb(n)7、算术运算包括基本算数运算、点运算和关系运算符。
第五讲matlab句柄绘图
![第五讲matlab句柄绘图](https://img.taocdn.com/s3/m/eb5aac4c17fc700abb68a98271fe910ef12daefe.png)
2
3
4
5
6
7
set(0,'defaultfigurecolor','b') set(0,'defaultaxescolor','g') h=line(x,y) set(h,'color','r') set(gca,'xcolor','w') set(gca,'ycolor','w')
1
0.8
0.6
高层绘图与底层绘图的区别
• 高层绘图函数——是对整个图形进行操 作的,图形每一部分的属性都是按缺省 方式设置的,充分体现了matlab语言的 实用性。
• 底层绘图函数——可以定制图形,对图 形的每一部分进行控制,用户可以用来 开发用户界面以及各专业的专用图形。 充分体现了matlab语言的开发性
一、什么是句柄图形
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
轴对象
窗口对象
线 对 象
面对象
10 0
value of the cosine 1
cos(x)=0.707
0.5
0
线对象
cos(x)
-10 20
轴对象
10
00
-0.5
20
10
-1
-5
0 50
像对象100 150 200
1 0.5
0 -0.5
-1 100 200 300
1. 对象属性的直接操作 对象属性的直接操作是通过当前句柄来
实现的,所以首先要获得当前句柄值以及 对象的属性,然后再查询或修改。
ch6 matlab图形句柄
![ch6 matlab图形句柄](https://img.taocdn.com/s3/m/3a32c3c4bb4cf7ec4afed007.png)
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函数句柄
![matlab GUI函数句柄](https://img.taocdn.com/s3/m/ad288303cc175527072208d8.png)
(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基础教程(第四版)第9章 MATLAB句柄图形](https://img.taocdn.com/s3/m/cbc489d64b35eefdc9d3330d.png)
图形对象是 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
![matlab使用教程4-3](https://img.taocdn.com/s3/m/d216b6e8856a561252d36f37.png)
第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图形句柄
![经典MATLAB图形句柄](https://img.taocdn.com/s3/m/a8da0a5d6d175f0e7cd184254b35eefdc8d315f2.png)
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章
![MATLAB程序设计基础教程(刘国良)-第9章](https://img.taocdn.com/s3/m/d4ff6a0e6f1aff00bfd51ec7.png)
第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的信息显示方 式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例10-3 建立一个图形窗口。该图形窗口没有菜单条,标题 名称为“我的图形窗口”,起始于屏幕左下角、宽度和高 度分别为450像素点和250像素点,背景颜色为绿色,且当 用户从键盘按下任意一个键时,将在该图形窗口绘制出正 弦曲线。
10.3.2 坐标轴对象
建立坐标轴对象使用axes函数,其调用格式为:
axes(坐标轴句柄)
MATLAB为每个坐标轴对象提供了很多属性。除公共属性 外,其他常用属性如下:Box属性、GridLineStyle属性、 Position属性、Units属性、Title属性等。
例10-4 利用坐标轴对象实现图形窗口的任意分割。
利用axes函数可以在不影响图形窗口上其他坐标轴的前提下 建立一个新的坐标轴,从而实现图形窗口的任意分割。
句柄变量=axes(属性名1,属性值1,属性名2,属性值2,…)
调用axes函数用指定的属性在当前图形窗口创建坐标轴,并 将其句柄赋给左边的句柄变量。也可以使用axes 函数按 MATLAB缺省的属性值在当前图形窗口创建坐标轴:
axes 或 句柄变量= axes
用axes 函数建立坐标轴之后,还可以调用axes 函数将之设定 为当前坐标轴,且坐标轴所在的图形窗口自动成为当前图 形窗口:
省略全部属性名和属性值,则将显示出句柄所有的允许属 性。
get函数的调用格式为: V=get(句柄,属性名) 其中V是返回的属性值。如果在调用get函数时省略属性名,
则将返回句柄所有的属性值。
3.对象的公共属性
对象常用的公共属性:Children属性、Parent属性、Tag属 性、Type属性、UserData属性、Visible属性、 ButtonDownFcn属性、CreateFcn属性、DeleteFcn属性。
10.3.3 曲线对象
建立曲线对象使用line函数,其调用格式为:
句柄变量=line(x,y,z,属性名1,属性值1,属性名2,属性值 2,…)
其中对x,y,z的解释与高层曲线函数plot和plot3等一样,其余 的解释与前面介绍过的figure和axes函数类似。
每个曲线对象也具有很多属性。除公共属性外,其他常用属 性如下:Color属性、LineStyle属性、LineWidth属性、 Marker属性、MarkerSize属性等。
例10-1 绘制曲线并查看有关对象的句柄。
10.2 图形对象属性 1.属性名与属性值 MATLAB给每种对象的每一个属性规定了一个名字,称为
属性名,而属性名的取值称为属性值。
2.属性的操作 set函数的调用格式为: set(句柄,属性名1,属性值1,属性名2,属性值2,…) 其中句柄用于指明要操作的图形对象。如果在调用set函数时
其中对x,y,z的解释ቤተ መጻሕፍቲ ባይዱ高层曲面函数mesh和surf等一样,其余 的解释与前面介绍过的figure和axes等函数类似。
每个曲面对象也具有很多属性。除公共属性外,其他常用属 性如下:EdgeColor属性、FaceColor属性、LineStyle属性、 LineWidth属性、Marker属性、MarkerSize属性等。
例10-2 在同一坐标下绘制红、绿两根不同曲线,希望获得 绿色曲线的句柄,并对其进行设置。
10.3 图形对象的创建 10.3.1 图形窗口对象 建立图形窗口对象使用figure函数,其调用格式为: 句柄变量=figure(属性名1,属性值1,属性名2,属性值
2,…) MATLAB通过对属性的操作来改变图形窗口的形式。也可
性及其取值控制着图形窗口对象。除公共属性外, 其他常用属性如下:MenuBar属性、Name属性、 NumberTitle属性、Resize属性、Position属性、 Units属性、Color属性、Pointer属性、 KeyPressFcn(键盘键按下响应)、 WindowButtonDownFcn(鼠标键按下响应)、 WindowButtonMotionFcn(鼠标移动响应)及 WindowButtonUpFcn(鼠标键释放响应)等。
除公共属性外,文字对象的其他常用属性如下:Color属性、 String属性、Interpreter属性、FontSize属性、Rotation属 性。
例10-6 利用曲线对象绘制曲线并利用文字对象完成标注。
10.3.5 曲面对象
建立曲面对象使用surface函数,其调用格式为:
句柄变量=surface(x,y,z,属性名1,属性值1,属性名2,属性 值2,…)
以使用figure函数按MATLAB缺省的属性值建立图形窗口: figure 或 句柄变量=figure 要关闭图形窗口,使用close函数,其调用格式为: close(窗口句柄) 另外,close all 命令可以关闭所有的图形窗口,clf命令则是
清除当前图形窗口的内容,但不关闭窗口。
MATLAB为每个图形窗口提供了很多属性。这些属
2.图形对象句柄
MATLAB在创建每一个图形对象时,都为该对象分配唯一 的一个值,称其为图形对象句柄(Handle)。句柄是图形对 象的唯一标识符,不同对象的句柄不可能重复和混淆。
计算机屏幕作为根对象由系统自动建立,其句柄值为0,而 图形窗口对象的句柄值为一正整数,并显示在该窗口的标 题栏,其他图形对象的句柄为浮点数。MATLAB提供了 若干个函数用于获取已有图形对象的句柄。
第10章 MATLAB图形句柄 10.1 图形对象及其句柄 10.2 图形对象属性 10.3 图形对象的创建
10.1 图形对象及其句柄
1.图形对象
MATLAB的图形对象包括计算机屏幕、图形窗口、坐标轴、 用户菜单、用户控件、曲线、曲面、文字、图像、光源、 区域块和方框等。系统将每一个对象按树型结构组织起来。
例10-5 利用曲线对象绘制曲线。
10.3.4 文字对象
使用text函数可以根据指定位置和属性值添加文字说明,并 保存句柄。该函数的调用格式为:
句柄变量=text(x,y,z,'说明文字',属性名1,属性值1,属性名2, 属性值2,…)
其中说明文字中除使用标准的ASCII字符外,还可使用 LaTeX格式的控制字符。