作者:王备
链接:https://www.zhihu.com/question/23776798/answer/25626834
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
链接:https://www.zhihu.com/question/23776798/answer/25626834
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
gcf 是 Get Current Figure 的缩写,返回当前图像窗口的引用。当前图像窗口,指的是如果你现在运行 plot 等类似命令时,图像所画在的那个窗口。更多信息,请查询 help gcf.
在你原题里,gcf 可以换成任意一个已知的窗口引用。如果在函数中画了多个图像,最理想的方案是每次画图时保留其引用。例如:
如果只希望代码默默地运行,不要弹出图像窗口,可在创建窗口时,将其设为隐藏。
等到需要保存图像时,调用 saveas:
如果图像很多,可以使用循环。例如:
在你原题里,gcf 可以换成任意一个已知的窗口引用。如果在函数中画了多个图像,最理想的方案是每次画图时保留其引用。例如:
hCircle = figure;
plot(sin(0:0.01:2*pi), cos(0:0.01:2*pi)); axis square
hRect = figure;
plot([-1 0 1 0 -1], [0 1 0 -1 0]); axis square
如果只希望代码默默地运行,不要弹出图像窗口,可在创建窗口时,将其设为隐藏。
hCircle = figure('Visible', 'off');
% plot circle.
等到需要保存图像时,调用 saveas:
saveas(hCircle, 'circle', 'png')
saveas(hRect, 'rect', 'jpg')
如果图像很多,可以使用循环。例如:
pic(1).h = hCircle;
pic(1).name = 'circle';
pic(1).fmt = 'png';
pic(2).h = hRect;
pic(2).name = 'rect';
pic(2).fmt = 'jpg';
for p = pic
saveas(p.h, p.name, p.fmt)
end
clear p