Скопируйте графические объекты и их потомков
new_handle = copyobj(h,p)
copyobj(___,'legacy')
copyobj создает копии графических объектов и присваивает объекты новому родительскому элементу.
Новый родительский элемент должен подходить для скопированного объекта (например, можно скопировать оси только, чтобы фигурировать или uipanel). copyobj копирует дочерние элементы также.
new_handle = copyobj(h,p) копии один или несколько графических объектов, идентифицированных h и, возвращают указатель нового объекта или массив новых объектов. Новые графические объекты являются дочерними элементами графических объектов, заданных p.
copyobj(___,'legacy') копии возражают свойствам коллбэка и объектным данным приложения. Это поведение сопоставимо с версиями copyobj перед релизом R2014b MATLAB®.
copyobj не копирует свойства или объекты, которые зависят от их исходного контекста, чтобы действовать правильно. Объекты с контекстными меню по умолчанию (такими как легенды и шкалы палитры) создают новые контекстные меню для нового объекта. Фигуры создают новые панели инструментов и меню для новой фигуры.
copyobj не копирует:
Свойства коллбэка (кроме тех случаев, когда с помощью опции legacy).
Данные приложения сопоставили с объектом (кроме тех случаев, когда с помощью опции legacy).
Контекстное меню легенд, шкал палитры или других объектов, которые задают контекстные меню по умолчанию.
Панель инструментов фигуры по умолчанию и меню.
Объекты осей используются с функцией yyaxis.
Свойство Interactions объекта осей.
Свойство DataTipTemplate для объектов, которые имеют это свойство, такое как Line, Scatter и объекты Surface.
Вы не можете скопировать тот же объект несколько раз в тот же родительский элемент в одном вызове copyobj.
MATLAB изменяет свойство Parent на новый родительский элемент и присваивает новые объекты новый указатель.
Скопируйте поверхность в новые оси, который находится в различной фигуре.
h = surf(peaks);
colormap hsv
Создайте целевую фигуру и оси:
fig = figure; ax = axes;
Скопируйте поверхность в новые оси и установите свойства, которые не являются поверхностными свойствами:
new_handle = copyobj(h,ax);
colormap(fig,hsv)
view(ax,3)
grid(ax,'on')Обратите внимание на то, что, в то время как поверхность копируется, colormap, view, и grid не копируется.
h и p могут быть скалярами или векторами. Когда и векторы, они должны быть той же длиной, и выходным аргументом, new_handle, является вектор той же длины. В этом случае new_handle(i) является копией h(i) с ее набором свойств Parent к p(i).
Когда h является скаляром, и p является вектором, h копируется однажды в каждый из родительских элементов в p. Каждый new_handle(i) является копией h с ее набором свойств Parent к p(i), и length(new_handle) равняется length(p).
Когда h является вектором, и p является скаляром, каждый new_handle(i) является копией h(i) с ее набором свойств Parent к p. Длина new_handle равняется length(h).
Необходимо скопировать связанные оси при копировании легенды или шкалы палитры.
При программировании пользовательского интерфейса не вызывайте copyobj или textwrap (который вызывает copyobj) в CreateFcn. Действие копирования объекта uicontrol неоднократно запускает CreateFcn, который повышает ряд сообщений об ошибке после превышения предела рекурсии.