Скопируйте графические объекты и их потомков
new_handle = copyobj(h,p)
copyobj(___,'legacy')
copyobj
создает копии графических объектов и присваивает объекты новому родительскому элементу.
Новый родительский элемент должен подходить для скопированного объекта (например, можно скопировать оси только, чтобы фигурировать или uipanel). copyobj
дочерние элементы копий также.
new_handle = copyobj(h,p)
копии один или несколько графических объектов идентифицированы h
и возвращает указатель нового объекта или массив новых объектов. Новые графические объекты являются дочерними элементами графических объектов, заданных p
.
copyobj(___,'legacy')
копии возражают свойствам коллбэка и объектным данным приложения. Это поведение сопоставимо с версиями copyobj
перед MATLAB® релиз R2014b.
copyobj
не копирует свойства или объекты, которые зависят от их исходного контекста, чтобы действовать правильно. Объекты с контекстными меню по умолчанию (такими как легенды и шкалы палитры) создают новые контекстные меню для нового объекта. Фигуры создают новые панели инструментов и меню для новой фигуры.
copyobj
не копирует:
Свойства коллбэка (кроме тех случаев, когда использование legacy
опция).
Данные приложения сопоставили с объектом (кроме тех случаев, когда использование legacy
опция).
Контекстное меню легенд, шкал палитры или других объектов, которые задают контекстные меню по умолчанию.
Панель инструментов фигуры по умолчанию и меню.
Объекты осей, используемые с yyaxis
функция.
Interactions
свойство объекта осей.
DataTipTemplate
свойство для объектов, которые имеют это свойство, такое как Line
рассеяние
, и 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
Представление
, и 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
неоднократно, который повышает ряд сообщений об ошибке после превышения предела рекурсии.