matlab保存已画图像

作者:王备
链接:https://www.zhihu.com/question/23776798/answer/25626834
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

gcf 是 Get Current Figure 的缩写,返回当前图像窗口的引用。当前图像窗口,指的是如果你现在运行 plot 等类似命令时,图像所画在的那个窗口。更多信息,请查询 help gcf.

在你原题里,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

你可能感兴趣的:(matlab)