MATLAB 显示存储在结构中的图形

MATLAB Display a figure stored in a structure

我在结构中存储了一个图形:

A.my_fig = gcf;

我如何得到'reopen'或'display'这个数字?我试过了 openfig('A.my_fig') 但它没有重新打开这个数字。

编辑:

为了清楚起见,我有一个函数:

function my_fig = gen_fig(x)
my_fig = figure
h = plot(x)
close(my_fig)
end

调用函数后,我希望能够显示图形。我不希望将图形存储为文件,我希望将其存储在变量中。这可能吗?

通过关闭图形,您将删除(使)gcf 返回的图形句柄。 gcf 对象(句柄)因此 无效 并且不能被操作。

openfig 用于打开存储在 .fig 文件中的图形,例如 hgsave。不要存储 gcf 返回的图形句柄,您应该将图形保存为 .fig 文件,然后使用 openfig.

再次打开它

示例:

h = figure;
y = randi(10, [4 3]);
bar(y);
hgsave(h, 'test'); % Saves the figure given by h as test.fig
close(h); % Closes the figure window and invalidates the h object

现在我们可以用openfig('test')打开图了。


澄清一下,无法将 MATLAB 图存储在变量中,关闭图然后从该变量重新打开它。最接近的解决方案是将图形保存到 .fig 文件,关闭它,重新打开它,然后删除它。

这不是 figure handles 的工作方式。

图句柄是一个程序化的"item",它将代码链接到打开的图。

这意味着如果图形关闭,手柄就会消失。你可以很容易地看到

surf(peaks);
A=gcf;
close(gcf);
A

给出:

A = 

  handle to deleted Figure 

相反,您可以将数字保存为 .fig 格式。这将允许您稍后使用 openfig

阅读和绘制它们