文档

为避免重复对象搜索

当您搜索把手,MATLAB®必须搜索对象层次找到匹配的手柄,这是费时。保存把手,你需要访问后是一个更快的方法。数组索引通常更快比使用findobj要么找到所有

此代码创建500级的对象,然后调用findobj在一个循环。

图AX =轴;对于IX = 1:500线(RAND(1,5),兰特(1,5),'标签',num2str(IX),“父”,斧头);结束的DrawNow;对于IX = 1:500 H = findobj(AX,'标签',num2str(IX));集(H,'颜色',兰特(1,3));结束的DrawNow;

更好的方法是在一个数组和索引手柄保存到第二阵列对于循环。

图AX =轴;H = gobjects(1500);对于IX = 1:500 H(IX)=行(RAND(1,5),兰特(1,5),'标签',num2str(IX),“父”,斧头);结束的DrawNow;%索引到手柄阵列对于IX = 1:500组(H(IX),'颜色',兰特(1,3));结束的DrawNow

搜索的范围限制

如果寻找把手是必要的,限制在对象树指定起点被搜索对象的数量。例如,指定起始点作为数字或包含要搜索的对象坐标轴。

限制支出搜索对象的时间另一种方法是限制搜索的深度。例如,'平面'搜索限制在一个特定的手柄阵列搜索到的对象。

使用findobj找到所有功能搜索句柄。

欲了解更多信息,请参阅找对象

是这个主题有帮助吗?