Matlab openfig对现有的数字

时间:2015-03-07 23:03:41

标签: matlab matlab-figure handle

在Matlab中我使用openfig(filename);打开已保存的图形,它总是会打开一个新窗口。所有'reuse'参数都不会在文件显示已打开时加载该文件。但是,我希望将文件打开到给定的数字中,然后覆盖其内容。有没有办法将数字句柄传递给openfig,还是有另一种功能可以实现这一目标?

所以在代码中,我想要做的是以下几点:

f = figure;
openfig(filename, 'Figure',f);

然后该图将显示在图f中,而不是打开第二个数字窗口。

1 个答案:

答案 0 :(得分:1)

我认为您可以使用copyobj功能安排与您想要的内容接近的内容。这是一个有停靠数字的尝试:

% --- Create sample figure
h = figure;
ezplot('sin(x)');
set(gcf, 'Windowstyle', 'docked');

pause

% --- Replace the axes
clf
g = openfig('test.fig', 'invisible');
copyobj(get(g, 'CurrentAxes'), h);
delete(g);

这让我可以顺利更换轴,而不会闪烁图形。

但是,我不知道这对全屏人物的表现如何,这肯定取决于你选择的方法。另请查看copyobj的详细文档,它不会复制所有内容,因此您可能需要使用legacy选项。