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
阅读和绘制它们
我在结构中存储了一个图形:
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