9

我使用 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

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

4

4 回答 4

5

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

于 2013-08-28T02:53:22.667 回答
5

改进@PeterM 不错的答案,一种更简单的方法是:

fig2H=copy(gcf) % or change gcf to your figure handle

但这取决于你想要什么,如果你只想要轴,或者整个图......(顺便说一句,它似乎没有复制图例句柄)。

于 2013-08-28T03:22:02.397 回答
1

您可以使用saveas将图形保存在文件中,并open从该文件加载完全相同的图形。

于 2013-08-28T01:45:15.767 回答
0

这将是完成你想要的最懒惰的方式。

% Sample plot
f1 = figure(1);
plot(0:0.1:2*pi, sin(0:0.1:2*pi));
f2 = figure(2);

% The code you need
saveas(f1, 'temp.fig')
f2 = hgload('temp.fig')
delete('temp.fig')
于 2013-08-28T08:11:35.723 回答