如何在不使用绘图的情况下将范围保存到图像文件?

时间:2010-12-08 23:01:47

标签: matlab simulink

这种情况非常重要,因为情节以不可接受的方式拉伸我的图表。

3 个答案:

答案 0 :(得分:5)

如果MikeT的评论是正确的,并且您试图保存Scope块中显示的图像,那么有几种方法可以做到这一点:

答案 1 :(得分:3)

由于gnovice的答案已经过时(至少从R2013开始),并且新的内置功能使用起来相当不方便,我想建议我的小脚本。

set(0,'ShowHiddenHandles','On')
set(gcf,'Units','centimeters','PaperUnits','centimeters')
pos = get(gcf,'Position');
set(gcf,'PaperPosition',[0 0 pos(3) pos(4)],'Papersize',[ pos(3),pos(4) ]);
set(gcf,'InvertHardcopy','off','Renderer','painters')
saveas(gcf,'scope.pdf')

它为您提供了与上一个打开的范围窗口完全相同的大小和外观的矢量图形。当然,您可以修改其他属性,并将其打印为具有特定分辨率的jpeg。但是你应该使用print

...
set(gcf,'Renderer','zbuffer')
print(gcf,'scope.jpg','-djpeg','-r600')

结果为600dpi的Jpeg文件。 这些单位并不重要,只要它们在数字和纸张之间保持一致。

答案 2 :(得分:0)

快速解决方案是在范围内选择File - Print to Figure。然后打开一个图表,您可以保存为.fig