我正在绘制一些方程式作为Matlab中的数字,然后我试图保存图形,但它会搞砸已保存的图像。
这是图像显示为matlab图形的方式:
但是,当我尝试保存为图像时,它会被搞砸,并且会像这样出现:
我有办法妥善保存吗?
我尝试了以下命令,但没有一个能够正常工作。
print(gcf,'-dbmp', 'eqn')
saveas(gcf,'eqn.bmp')
我将不胜感激任何帮助!
谢谢!
答案 0 :(得分:1)
为了忠实再现您在屏幕上看到的内容,您必须使用getframe
和frame2im
命令,如下所示,
F = getframe(gcf);
[im,map] = frame2im(F);
if isempty(map)
imwrite(im,'figure.bmp');
else
imwrite(im,map,'figure.bmp');
end
如果您使用saveas
或print
,您可能会获得具有不同尺寸和对象缩放的文件,这可能会导致方程式绘制错误。 getframe
的操作可确保文件分辨率反映您在屏幕上显示的内容。来自文档:
捕获帧的分辨率
框架图像的分辨率取决于调用
getframe
时轴的大小(以像素为单位)。由于getframe
命令获取屏幕的快照,如果轴的大小很小(例如,因为您已将视图限制在轴内的窗口),getframe
会捕获更少的屏幕像素,。 ..
这意味着不会以不同的比例重绘(这会弄乱方程式)。