当您搜索把手,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
如果寻找把手是必要的,限制在对象树指定起点被搜索对象的数量。例如,指定起始点作为数字或包含要搜索的对象坐标轴。
限制支出搜索对象的时间另一种方法是限制搜索的深度。例如,'平面'
搜索限制在一个特定的手柄阵列搜索到的对象。
欲了解更多信息,请参阅找对象