Matlab openfig 到现有图形

Matlab openfig to existing figure

当我在 Matlab 中使用 openfig(filename); 打开保存的图形时,它总是会打开一个新的 window。 'reuse' 参数所做的只是在文件看起来已经打开时不加载文件。但是,我希望将文件 打开到给定的图形 中,然后只覆盖其内容。有没有办法将图形句柄传递给 openfig,或者是否有其他函数可以完成此操作?

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

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

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

我认为您可以使用 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 选项。