|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
搞不清“findobj”和“findall”的区别4 Z% i' G! K% ]$ ^$ u
书上写的是:
8 t# v1 J \# s' w7 E% s. B9 {9 C“findobj”返回系统root对象和所有子对象的句柄;4 d0 C8 a, F' q ^; u- c' x' U
“findall(handlelist)”返回对象handlelist的层次下所有图像对象的句柄! I) q# r; n# O5 W4 d) C5 J
7 ^0 Z$ h6 q7 m/ e2 c2 v
我就按书上编了一个小程序:/ i4 W* E6 p2 F ~
close all;clear;clc;' L: v$ l# i: T7 v; H
plot(1:10)
2 I2 c f1 ^! g, A8 }1 Y, I+ ~8 v. i0 Gxlabel xlab %x轴名称为“xlab”: `8 q5 Y4 p; T3 J( n7 L# q
% N/ \ \5 E& gdisp('findobj返回的对象句柄')3 p; z0 N, O5 }$ Z4 g
h1=findobj7 n* k) @' t" l* ?: k
%获取系统root和所有子对象的句柄,只找到4个对象
& T! M! \; d6 `( H) m5 A* ]7 r%>> 0 -- 屏幕的句柄7 @) E/ p- V: `( e( G) ]
%>> 1 -- 窗口的句柄1 e0 {/ D0 S( D' j
%>> 153.0018 -- 轴的句柄* F+ _/ u# [! ?% F# z
%>> 154.0023 -- 直线的句柄2 C# D) j' V; R3 ?
& @+ H% m, ~! R; z" X8 J5 y4 D( E, A; U3 g: C- t8 C" k
disp('findall返回的对象句柄')
9 {2 U1 `, b/ X; M$ Kh2=findall(0)7 N4 h" O/ U$ L! b# L$ I) l3 b
%获取root对象下所有对象的句柄
" _6 ^* g1 B+ ~%h2=[158*1],找到了158个对象
6 N( Y) q s$ o: I; H6 O
! e% Y- P- P6 f$ Y/ n. @0 u8 _7 ? 个人理解:findobj和findall(0)找到的对象个数起码应该是相等的,为什么二者不等?而且findall多找出了那么多对象,多出来的对象是体现在哪些图形上?% ?# j+ }; ]9 p! J; F+ f5 _
* `, f: ~0 \- e- C2 [
/ Q- r- ? }, k0 _' O1 H
disp('allchild返回的root子对象句柄') c6 L, w9 c) I) M
h3=allchild(0)# t: O6 i. X* A& m) X
%获取root对象的子对象
, g) x" A# z% @- c5 R2 {%h3=1,只找到一个figure对象- L, `' }: P4 m! p, F+ g
0代表屏幕,1代表窗口,搜寻整个屏幕只有1个窗口图形,那么,窗口里的坐标轴、曲线不算么?为什么在搜索窗口的子对象时,有搜索出10个对象来呢(见下指令)?
: Y6 H5 {. C" r% J+ {) U
/ |8 t0 t5 r+ S
2 X4 D: t5 h7 \, @" J+ K9 ?disp('allchild返回的figure子对象句柄')7 T9 h. U1 C! \" K$ F) E# t. ~
h4=allchild(1)3 o/ N! }0 j3 e$ W' b1 r
%获取figure对象的子对象,
" S" v% ]2 g( P& | R%h4=[10*1] |
|