在Matlab中我使用openfig(filename);
打开已保存的图形,它总是会打开一个新窗口。所有'reuse'
参数都不会在文件显示已打开时加载该文件。但是,我希望将文件打开到给定的数字中,然后覆盖其内容。有没有办法将数字句柄传递给openfig
,还是有另一种功能可以实现这一目标?
所以在代码中,我想要做的是以下几点:
f = figure;
openfig(filename, 'Figure',f);
然后该图将显示在图f
中,而不是打开第二个数字窗口。
答案 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
选项。