爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 20656|回复: 5

[参考资料] MATLAB图形保存方法【总结】(save figure)

[复制链接]

新浪微博达人勋

发表于 2013-7-29 13:03:25 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
Matlab中图片保存的四种方法:

[size=1em]matlab的绘图和可视化能力是不用多说的,可以说在业内是家喻户晓的。Matlab提供了丰富的绘图函数,比如ez**系类的简易绘图函数,surf、mesh系类的数值绘图函数等几十个。另外其他专业工具箱也提供了专业绘图函数,这些值得大家深入学习好久。
今天我只是讨论下如何保存这些由Matlab绘制出来的图像呢?当然借助第三方截图软件,就算了!
1、直接另存为
在figure中使用菜单file——>saveas——>选择保存形式(fig,eps,jpeg,gif,png,bmp等),这个的缺点是另存为的图像清晰度有很大的牺牲
2、复制到剪贴板
在figure中使用菜单edit——>copy figure——>此时图像就复制到剪贴板了,我们可以借助其他软件(比如:绘图板)保存为需要的图片
3、saveas命令格式
Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】
% saveas(figure_handle,filename,fileformat)
plot(1:10);
saveas(gcf,‘myfig.jpg’)
复制代码
4、print函数
print函数原本不是用来进行图像保存了,而是操作打印机的,但是这里我们可以借用下
% print(figure_handle,fileformat,filename)
x=-pi:2*pi/300:pi;
y=sin(x);
plot(x,y);
%Matlab根据文件扩展名,自动保存为相应格式图片,另外路径可以是绝对也可以是相对
print(gcf,'-dpng','abc.png')   %保存为png格式的图片到当前路径
复制代码
另外有网友向我反映,有时我们只有一个Matlab图像的fig文件,但没有该图像的相关坐标数据,那我们如何获取fig图像的数据呢,这个其实比较好办
1、将那个fig文件保存到Matlab的搜索路径下,双击打开它
2、在Matlab的command中输入如下内容
h=get(gcf,'chidren')
data=get(h,{'xdata','ydata','zdat a'})
%此时图形中所有图像的三维数据x,y,z将会以结构体的形式保存到data变量中了

[size=1em]


一种是出来图形窗口后手动保存(这儿又可以分两种):
1 直接从菜单保存,有fig,eps,jpeg,gif,png,bmp等格式。
2 edit------〉copy figure,再粘贴到其他程序。
另一种是用命令直接保存(这里也有两种):
1 用saveas命令保存图片。
saveas的三个参数:
(1)图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3.

(2)文件名。
(3)单引号字符串,指定存储格式。
例:
saveas(gcf,['D:\MATLAB7\work','yanbao',num2str(k),'.jpg']);
2 使用plot函数后紧接着用print函数。
print的三个参数:
(1)图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3.
(2)单引号字符串,指定存储格式。
用gcf可以获取当前窗口句柄。

png格式:'-dpng'
jpeg:    '-djpeg',
tiff: '-dtiff'
bmp: '-dbitmap'
(3)文件名。


例:
>> x=-pi:2*pi/300:pi;
>> y=sin(x);
>> plot(x,y);
>> print(gcf,'-dpng','abc.png')   % 保存为png格式的图片。
>> figure(2)            % 新建一个句柄为2的图形窗口。
>> plot(x,cos(x));    % 在句柄为2的图形窗口上画图。
>> grid
>> print(2,'-djpeg','C:\abc.jpeg'); %将句柄为2的图形保存为jpeg/jpg格式的图片,文件名为'C:\abc.jpeg'。

评分

参与人数 2金钱 +24 贡献 +6 收起 理由
Aires + 14 + 4
topmad + 10 + 2 赞一个!

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-29 14:23:05 | 显示全部楼层
谢谢楼主的知识普及了~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-11-3 11:23:45 | 显示全部楼层
保存图像,好贴
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-25 14:54:22 | 显示全部楼层
print之后有时候图为什么会和figure中的样子不一样呢?比如字的大小和间距
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-25 21:20:57 | 显示全部楼层
我导出时通常是: 文件-导出设置-渲染-分辨率(dpi)改成600,然后再导成JPG 的,这样效果会好很多。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-2-2 18:17:41 | 显示全部楼层
yangwei19981 发表于 2016-1-25 21:20
我导出时通常是: 文件-导出设置-渲染-分辨率(dpi)改成600,然后再导成JPG 的,这样效果会好很多 ...

你好,我的是matlab2018版,由于我在figure做了很多操作,所以我就是您这种到导出方法,但是我已经设置为600,无论何种格式,导出来仍是96dpi
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表