matlab之findobj的用法

本文深入解析MATLAB中图形对象句柄的概念与应用,包括如何使用findobj、gcf、gca、gco等函数获取句柄,以及通过get和set函数操作对象属性,实现图形定制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

matlab之findobj的用法

findobj

每一个图象对象都有一个独一无二的名字,这个名字叫做句柄。句柄是在 MATLAB 中的一个独一无二的整数或实数,用于指定对象的身份。用于创建一个图象对象的任意命令都会自动地返回一个句柄。例如,命令

Hnd1 = figure;

创建一个新的图象,并返回这个图象的句柄到变量 Hnd1。
函数 gcf返回当前图象窗口的句柄
函数 gca 则返回在当前图象窗口中的当前坐标系对象的句柄
函数 gco返回当前选择对象的句柄

我们可以用随时用 get 函数检测任意一个对象的属性,并用 set 函数对它进行修改。get 函数最常见的形式如下

value = get(handle, ‘PropertyName’);
value = get(handle);

value是勤句柄指定对象的属性值。如果在调用函数时,只有一个句柄,那么函数将会返回一个结构,域名为这个对象的属性名,域值为属性值。
set 函数的最常用形式为
set(handle,‘PropertyName1’, value1, …);
例:
Hnd1 = plot(x, y);
图象如图 9.2a所示。这个曲线的句柄被存储在变量 Hnd1 内,我们可以利用它检测和修改
这条曲线的属性。函数 get(Hnd1)在一个结构中返回这条曲线所有的属性,每一个属性名都为结
构的一个元素。

result=get(Hnd1)
result =

             Color: [0 0 1]
         EraseMode: 'normal'
         LineStyle: '-'
         LineWidth: 0.5000
            Marker: 'none'
        MarkerSize: 6
   MarkerEdgeColor: 'auto'
   MarkerFaceColor: 'none'
             XData: [1x21 double]
             YData: [1x21 double]
             ZData: [1x0 double]
      BeingDeleted: 'off'
     ButtonDownFcn: []
          Children: [0x1 double]

图对象的句柄由函数gcf返回
axes 对象的句柄由函数 gca 返回
line对象由plot函数返回

set(gcf,‘Color’,[1 0.8 0.8]);
set(gca,‘YGrid’,‘on’);
set(Hndl,‘Color’,[1 0.5 0],‘LineWidth’,3);

用 set函数列出可能属性值

函数用于提供所有可能的属性值列表。如果在调用函数 set 时,只包括属性名而不包括相应的属性值,那么函数 set 就会返回所有的合法属性值。例如,命令set(Hnd1,“LineStyle”)将返回所有可能的线型,大括号中是默认的线型。

set(Hndl,‘LineStyle’)
[ {-} | – | : | -. | none ]
这个函数的合法包括和"none",第一个是默认的类型。

set(Hndl,‘LineWidth’)
A line’s “LineWidth” property does not have a fixed set of property values.

函数 set(Hnd1)返回一个对象的所有属性的所有可能的属性值。

set(Hndl)

ans =

             Color: {}
         EraseMode: {4x1 cell}
       LineStyle: {5x1 cell}
         LineWidth: {}
            Marker: {14x1 cell}
        MarkerSize: {}
   MarkerEdgeColor: {2x1 cell}
   MarkerFaceColor: {2x1 cell}
 LineStyle: {5x1 cell}
         LineWidth: {}
            Marker: {14x1 cell}
        MarkerSize: {}
   MarkerEdgeColor: {2x1 cell}
   MarkerFaceColor: {2x1 cell}
             XData: {}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值