Matlab将图形保存到图像文件的问题

时间:2014-01-31 19:38:12

标签: matlab matlab-figure

我正在绘制一些方程式作为Matlab中的数字,然后我试图保存图形,但它会搞砸已保存的图像。

这是图像显示为matlab图形的方式: enter image description here

但是,当我尝试保存为图像时,它会被搞砸,并且会像这样出现: enter image description here

我有办法妥善保存吗?

我尝试了以下命令,但没有一个能够正常工作。

print(gcf,'-dbmp', 'eqn')
saveas(gcf,'eqn.bmp')

我将不胜感激任何帮助!

谢谢!

1 个答案:

答案 0 :(得分:1)

为了忠实再现您在屏幕上看到的内容,您必须使用getframeframe2im命令,如下所示,

F = getframe(gcf);
[im,map] = frame2im(F);
if isempty(map)
    imwrite(im,'figure.bmp');
else
    imwrite(im,map,'figure.bmp');
end

如果您使用saveasprint,您可能会获得具有不同尺寸和对象缩放的文件,这可能会导致方程式绘制错误。 getframe的操作可确保文件分辨率反映您在屏幕上显示的内容。来自文档:

  

捕获帧的分辨率

     

框架图像的分辨率取决于调用getframe时轴的大小(以像素为单位)。由于getframe命令获取屏幕的快照,如果轴的大小很小(例如,因为您已将视图限制在轴内的窗口),getframe会捕获更少的屏幕像素,。 ..

这意味着不会以不同的比例重绘(这会弄乱方程式)。