我知道有很多关于这个问题的答案,但我找不到任何帮助我的答案.. 我在MATLAB中有一个带有2个轴的GUI,我想将每个轴分别保存为.jpeg或任何其他格式。 我试过的任何方式 - 我得到的图像包括所有的GUI或剪切图形。 不知道如何才能获得2张好照片?
答案 0 :(得分:1)
你可以遍历所有的轴并调用getframe
来获得这些轴。然后,您可以使用cdata
保存imwrite
。
% Get a list of all axes in the figure
allax = findall(gcf, 'type', 'axes');
for k = 1:numel(allax)
% Get the axes as an image
fr = getframe(allax(k));
% Save the image
imwrite(fr.cdata, sprintf('%d.png'));
end
如果您已经拥有轴柄,可以直接使用它们
fr = getframe(axes2);
imwrite(fr.cdata, 'axes2.png')
fr = getframe(axes1);
imwrite(fr.cdata, 'axes1.png')
如果要包含X和Y轴标签,可以执行类似
的操作function axes2image(ax, filename)
hfig = ancestor(ax, 'figure');
rect = hgconvertunits(hfig, get(ax, 'OuterPosition'), ...
get(ax, 'Units'), 'pixels', get(ax, 'Parent'));
fr = getframe(hfig, rect);
imwrite(fr.cdata, filename);
end
axes2image(axes2, 'axes2.png')
axes2image(axes1, 'axes1.png')