|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
搞不清“findobj”和“findall”的区别
: l: L8 C; ^' z7 u/ G! k书上写的是:8 [; k2 p, k8 h) B" q k( w
“findobj”返回系统root对象和所有子对象的句柄;0 M. D, ~. X: |. \
“findall(handlelist)”返回对象handlelist的层次下所有图像对象的句柄; j) n3 M# n* ?9 n; S
7 A% H, A/ B' L3 k我就按书上编了一个小程序:
+ Z3 H0 f4 O' G9 U8 sclose all;clear;clc;
% t$ ^5 R- U2 @* w0 nplot(1:10)
# l8 ~) ?3 ^7 w9 A5 s; `xlabel xlab %x轴名称为“xlab”: f- \& H& `$ y
$ Z9 b3 \5 J. P$ j! z4 U
disp('findobj返回的对象句柄')- V/ \5 ~6 m* g' t7 T0 B' s
h1=findobj5 @" F0 M$ u1 b" d6 _' m/ P* ?
%获取系统root和所有子对象的句柄,只找到4个对象8 t. w! |/ `1 L& b$ N; ^9 o1 ?
%>> 0 -- 屏幕的句柄& |$ N( k a/ j2 H) u: X0 P
%>> 1 -- 窗口的句柄- I. ?3 }0 A) n/ |) N' G+ ^
%>> 153.0018 -- 轴的句柄* v1 G. c/ _7 ` O: w8 X
%>> 154.0023 -- 直线的句柄
7 l4 l6 b! f# U* d4 Z0 M9 U& C3 \( S1 p
2 Z/ K9 d2 z' b0 t f# k1 W, e
disp('findall返回的对象句柄')
( x6 } Q/ g% s4 u: \h2=findall(0)3 c% J/ w' a* C
%获取root对象下所有对象的句柄
9 p& k- j) w& O0 K4 y4 b* y4 J%h2=[158*1],找到了158个对象
' W0 y/ a# D) G# U8 f' E' o" M. w& ]# b- p0 j2 @; z' I6 ^
个人理解:findobj和findall(0)找到的对象个数起码应该是相等的,为什么二者不等?而且findall多找出了那么多对象,多出来的对象是体现在哪些图形上?
; C. `/ y, E! Z7 e7 D; z+ I; s$ m; h5 p2 U7 d w/ b
& K7 ~4 }, x# r: i; Ydisp('allchild返回的root子对象句柄')
8 R4 ~- H: [/ ]! Gh3=allchild(0), o5 Z# F. d0 p, i9 N9 O- l
%获取root对象的子对象
x0 p, R' i' D- n% G0 s5 {+ ?9 C%h3=1,只找到一个figure对象
8 P3 e( Q; @/ r 0代表屏幕,1代表窗口,搜寻整个屏幕只有1个窗口图形,那么,窗口里的坐标轴、曲线不算么?为什么在搜索窗口的子对象时,有搜索出10个对象来呢(见下指令)?
9 K- p7 g4 u8 u6 S1 I9 H8 D/ r7 W- {6 u+ y! F
4 k' X, e% p- W: Y& ]0 P9 w
disp('allchild返回的figure子对象句柄')" _2 b4 Q$ [ L5 g0 y2 k/ ?
h4=allchild(1): H. F8 y9 `# F( m& \ q$ h
%获取figure对象的子对象,
9 h6 l' @: F0 j# i%h4=[10*1] |
|