我在一个结构中存储了一个数字:
A.my_fig = gcf;
我如何重新开启'或者'显示'这个数字?我试过openfig('A.my_fig')
,但没有重新打开这个数字。
修改
为了说清楚,我有一个功能:
function my_fig = gen_fig(x)
my_fig = figure
h = plot(x)
close(my_fig)
end
调用该函数后,我希望能够显示该图。我不希望将数字存储为文件,我希望将其存储在变量中。这可能吗?
答案 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