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

时间:2015-09-29 16:25:03

标签: matlab matlab-figure

我在一个结构中存储了一个数字:

A.my_fig = gcf;

我如何重新开启'或者'显示'这个数字?我试过openfig('A.my_fig'),但没有重新打开这个数字。

修改

为了说清楚,我有一个功能:

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

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

2 个答案:

答案 0 :(得分:4)

通过关闭数字,您删除(无效)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文件,关闭它,重新打开然后将其删除。

答案 1 :(得分:3)

这不是数字处理的方式。

图形句柄是一个程序化的“项目”,它将代码链接到打开的图形。

这意味着如果图形关闭,手柄会消失。您可以通过

轻松查看
surf(peaks);
A=gcf;
close(gcf);
A

给出:

A = 

  handle to deleted Figure 

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

阅读和绘制它们