复制对象
复制对象CopyObj
使用一个父亲将对象从一个父母复制到另一个父CopyObj
功能。副本与原始副本不同:
这
父母
属性现在是新父母。复制的对象的手柄与原件不同。
CopyObj
不复制原始对象的回调属性CopyObj
不复制与原始对象关联的任何应用程序数据。
所以,==
和是平等的
比较原始和新手柄时返回false。
只要结果维护正确的父母/子女关系,您就可以将各种对象复制到新父母或一个新父母。复制带子对象的对象时,MATLAB®也复制所有孩子。
笔记
您不能将同一对象多次复制到单个呼叫中的同一父母CopyObj
。
将单个对象复制到多个目的地。
将单个对象复制到多个目的地时,新的把手由CopyObj
与父母处理的顺序相同。
h = copyObj(cobj,[newparent1,newparent2,newparent3])
返回的数组H
包含按显示的顺序包含新对象的处理:
h(1) - > newparent1 h(2) - > newparent2 h(3) - > newparent3
复制多个对象
此示例显示了如何将多个对象复制到单亲父母。
假设您创建一组相似的图表,并希望在每个图上标记相同的数据点。您可以将用于标记第一个图中的点标记的文本和标记对象复制到每个后续图。
创建并标记第一个图:
x = 0:.1:2*pi;图(x,sin(x))htext = text('细绳',,,,'\ {5 \ pi \ div4,sin(5 \ pi \ div4)\} \ rightarrow',,,,...'位置',[5*pi/4,sin(5*pi/4),0],,...'水平对齐',,,,'对');hmarker = line(5*pi/4,sin(5*pi/4),0,,“标记”,,,,'*');
创建两个没有标签的图形:
图x = pi/4:.1:9*pi/4;图(x,sin(x))haxes1 = gca;
图x = pi/2:.1:5*pi/2;图(x,sin(x))haxes2 = gca;
复制文本和标记(htext
和Hmarker
)通过将它们养育到各个轴上,来到每个图。返回文本和标记副本的新手柄:
newhandles1 = copyObj([[htext,hmarker],haxes1);newhandles2 = copyObj([[htext,hmarker],haxes2);
因为目标是将两个对象复制到每个轴,请致电CopyObj
两次,每次都有一个目标轴。
将多个对象复制到多个目的地
你打电话时CopyObj
有多个对象要复制和多个父级目的地,CopyObj
将各个对象复制给各自的父母。也就是说,如果H
和p
是长度的手柄阵列n
,然后打电话给CopyObj
:
copyObj(h,p)
结果逐元副本:
h(1) - > p(1);h(2) - > p(2);...h(n) - > p(n);