Matlab学习——copyobj

函数名称

copyobj

函数功能

复制图形对象及其后代,可以用来

  • 利用复制副本的方式调用已创建的坐标轴区图像;
  • 将多张figure中的图像合并到一张figure中进行对比;

官方介绍

Matlab copyobj介绍

new_handle = copyobj(h,p)

关于上面这行代码,官方的解释为:
复制 h 标识的一个或多个图形对象并返回新对象句柄或新对象数组。新图形对象是 p 指定的图形对象的子级。
通俗的讲,也就是:
将句柄h对应的图形对象(子级)复制到p(父级)中,而输出的new_handle则是p的子级。

使用时必须注意父级与子级的关系。
Figure > Axes > Line
Line是Axes的子级。
Axes是Figure的子级。

使用示例

将多张 figure 中的图像合并到一张 figure 中进行对比,以及将 figure 中的图像复制到 UIAxes 中

clc,clear,close all
x = linspace(0,2*pi,100);
y1 = sin(x);
y2 = cos(x);
y3 = sin(2*x);

F1 = figure(1);
L1 = plot(x,y1,'LineWidth',1.3,'Color','r');

F2 = figure(2);
L2 = plot(x,y2,'LineWidth',1.3,'Color','g');

F3 = figure(3);
L3 = plot(x,y3,'LineWidth',1.3,'Color','b');

Fig = figure;
Ax = axes;

% 方式1:直接利用Axes和Lines的父子关系,将figure(1)中的图像复制到figure中
L1_new = copyobj(L1,Ax);
set(L1_new,'Color','k')

% 方式2:利用Figure和Axes的父子关系,再利用Axes和Lines的父子关系,将figure(2)中的图像复制到figure中
L2_new = copyobj(F2.Children.Children,Ax);
set(L2_new,'LineStyle','--')

% 方式3:使用get函数获取Figure的子级和子级的子级,将figure(3)中的图像复制到figure中
L3_new = copyobj(get(get(F3,'Children'),'Children'),Ax);
set(L3_new,'Marker','o')
legend('line1','line2','line3')

% 将figure中的图像复制到Ui坐标区中
Ui_Ax = uiaxes;
copyobj(Fig.Children(2).Children,Ui_Ax)
  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值