将现有的MATLAB图绘制成另一个图

Man*_*iAm 7 matlab plot

我使用plot命令绘制图形,然后使用set命令更改了许多属性.我还存储了情节的句柄(比如说h1).

我需要的是使用句柄在我的代码中稍后再次绘制相同的数字.我检查了plot命令,但没有找到任何接受句柄的版本.我还想到了获取Xdata和Ydata并使用它们来重新绘制相同的数字.

什么是最简单的解决方案?

编辑1:基于PeterM建议的copyobj的工作示例代码.

hf(1) = figure(1);
plot(peaks);

hf(2) = figure(2);
plot(membrane);

hf(3) = figure(3);
ha(1) = subplot(1,2,1);
ha(2) = subplot(1,2,2);

for i = 1:2
    hc  = get(hf(i),'children');
    hgc = get(hc, 'children');
    copyobj(hgc,ha(i));
end
Run Code Online (Sandbox Code Playgroud)

编辑2:我还发现这个功能可以将数字(包括图例)复制到子图中.

Pet*_*erM 5

我之前遇到过这种情况.根据您要执行的操作,函数copyobj可能是合适的.此功能可让您获取一个轴的内容并将其复制到新图形.


Wer*_*ner 5

改善@PeterM好的答案,一种简单的方法是:

fig2H=copy(gcf) % or change gcf to your figure handle
Run Code Online (Sandbox Code Playgroud)

但这取决于您想要什么,是只需要轴还是整个图形……(顺便说一句,它似乎没有复制图例手柄)。