export_fig导出图片,并设置导出路径

export_fig 是 MATLAB 中一个非常有用的工具,用于导出图形为高质量的图像文件。它允许将 MATLAB 图形导出为多种格式,包括 PNG、JPEG、TIFF、PDF、EPS 等,并且能够保留图形的细节,如字体、线条宽度等。

1. 安装 export_fig

export_fig 不是 MATLAB 的内置函数,而是一个第三方工具。你可以通过以下步骤安装它:

  • 下载 export_fig
    1. 访问 GitHub 上的 export_fig 页面
    2. 下载 ZIP 文件并解压,或者使用 MATLAB 命令行直接安装:
addpath('path_to_export_fig');  % 添加 export_fig 的路径
savepath;  % 保存路径
  • 也可以使用 MATLAB 的 File Exchange 下载和安装。

2. 基本用法:

export_fig('filename', 'format');
  • 'filename':指定保存文件的路径和文件名。
  • 'format':指定导出的图像格式,如 pngpdfjpg 等。如果不指定,默认格式为 PNG。

例如,导出当前图形为 PNG 格式:

export_fig('myfigure.png');

3. 常见选项:

export_fig 支持一些额外的参数,可以调整导出图形的细节。

  • -pdf:导出为 PDF 格式。
export_fig('myfigure.pdf', '-pdf');
  • -png:导出为 PNG 格式。
export_fig('myfigure.png', '-png');
  • -eps:导出为 EPS 格式。
export_fig('myfigure.eps', '-eps');
  • -transparent:生成透明背景图像。适用于 PNG 格式,图像背景将是透明的。
export_fig('myfigure.png', '-transparent');
  • -r300:设置导出的图像分辨率,单位为 DPI。例如,300 DPI 的高分辨率图像:
export_fig('myfigure.png', '-r300');
  • -painters:对于矢量图形(如 PDF 和 EPS),可以指定 -painters,以确保导出的文件使用矢量格式而不是位图。
export_fig('myfigure.pdf', '-painters');

4. 同时导出多个格式:

你可以同时导出多个格式,只需在命令中指定多个文件名和格式。

export_fig('myfigure.png', 'myfigure.pdf');

这将同时导出 PNG 和 PDF 格式的文件。

5. 导出指定图形:

如果你有多个图形窗口并且想要导出指定图形,可以通过传入图形句柄来实现。例如,导出第一个图形窗口:

h = figure;
plot(1:10);
export_fig(h, 'myfigure.png');

6. 常见问题和提示:

  • export_fig 有时可能与 MATLAB 的图形渲染设置冲突,特别是当图形非常复杂时。可以尝试使用 -painters 参数来解决矢量图形导出的问题。
  • 对于高分辨率图像,记得通过 -r 选项设置合适的 DPI,避免图像模糊。
  • 如果需要导出的图形包含 LaTeX 代码,确保已经正确配置了 MATLAB 环境以支持 LaTeX 渲染。

2、设置导出路径
在 MATLAB 中,使用 export_fig 时,如果你希望设置导出图像的路径,可以在文件名中指定完整的路径,或者使用 fullfile 来动态生成路径。你已经在代码中使用了 strcat 来生成文件名,并且你希望通过 export_fig 导出图像。下面是如何设置导出路径的几种方法。

示例代码:

假设你想根据 ii 的值,动态生成文件名,并设置图像导出的路径。

方法 1:直接在 strcat 中设置路径
% 生成文件名并设置路径
output_dir = 'C:\path\to\save\directory';  % 设置你希望保存图像的路径
fname = strcat(output_dir, filesep, 'test', num2str(ii), '.png');  % 拼接路径和文件名

% 使用 export_fig 导出图像
export_fig(fname);
  • output_dir:设置你希望保存图像的文件夹路径。
  • filesep:是 MATLAB 中的目录分隔符,filesep 会自动适应操作系统(在 Windows 上是 \,在 Unix/Linux 上是 /)。
  • num2str(ii):将 ii 转换为字符串。
方法 2:使用 fullfile 来生成路径和文件名
% 生成文件名并设置路径
output_dir = 'C:\path\to\save\directory';  % 设置你希望保存图像的路径
fname = fullfile(output_dir, ['test', num2str(ii), '.png']);  % 使用 fullfile 生成完整路径

% 使用 export_fig 导出图像
export_fig(fname);
  • fullfile(output_dir, ...):这是一个更为推荐的方法,它会根据操作系统的规范自动处理路径分隔符。它能够处理不同平台间路径格式的差异。

解释:

  • fname 中包含了完整的文件路径和图像文件名,这样你就可以将图像保存到指定的文件夹中了。
  • export_fig 将会将图像导出到这个指定的路径。

小结:

通过设置 output_dir 为所需的文件夹路径,并通过 strcatfullfile 函数拼接路径和文件名,就可以成功设置图像的保存路径。

MATLAB生成达到出版质量的图形-export_fig.zip 本帖最后由 stellari 于 2013-5-28 16:03 编辑 MATLAB的绘图功能非常强大,但是有两个突出的问题:1、导出图片质量不高;2、有时导出图片figure中实际所见不一致。所以导致大家正式发表专业文章时不经常用MATLAB作为首选的绘图软件。其实,只要解决了上面的两个问题,MATLAB也是可以生成能够达到出版水平的图形的。 简介 export_fig (见附件) 就是一个能够解决上述问题的工具包。首先,问题1的主要原因是MATLAB的默认绘图渲染器较为原始,所以画出的线条都有很明显的锯齿。而用export_fig导出图片,所有的线条和文字都是经过抗锯齿处理的,所以视觉效果极佳;至于问题2,export_fig会严格按照figure上显示的内容去导出,是真正意义上的所见即所得。而且用export_fig导出图片不会有MATLAB默认导出时那么大的白边,而是保证白边的范围仅能容纳坐标轴和title,xlabel,ylabel,这样使得图片的尺寸减小,排版更方便。下两图选得虽然不是很有代表性,但是依然可以看出export_fig截出的图中白边大量减少,且有非常先进的抗锯齿处理(比如,上图的红线在1-2范围内有很明显的锯齿,下图则几乎没有。坐标轴上的数字也是如此)。背景中的网格也由虚线变成了“淡实线”,更符合现代制图的审美观。 figure中直接选择save的结果: test1_1.png figure中选择save的保存结果 export_fig的结果: test2_2.png export_fig的保存结果 使用方法 export_fig的使用方法很简单,解压附件中的文件,然后将得到的所有文件放入某目录中,再将该目录添加至MATLAB的搜索路径中。导出图片时,输入 export 文件名 即可将当前figure中的图输出至文件中。export_fig能够自动识别文件名的扩展名,保存成相应的格式。 注意 如果需要导出pdf或eps格式的话,需要下载安装ghostscript,具体可以参见export_fig的发布页 http://www.mathworks.com/matlabc ... nge/23629-exportfig 题外话 其实不要小看MATLABMATLAB其实隐藏了一个非常强大的绘图模式: HG2。这个模式平时是隐藏的,只能在MATLAB启动时通过附加参数的形式开启,即可以将MATLAB的快捷方式中的指向目标由 "...\...\MATLAB\R2013a\bin\MATLAB.exe" 改为 "...\...\MATLAB\R2013a\bin\MATLAB.exe" -hgVersion 2 (注意hgVersion 和 2 之间有一个空格) 然后使用这个快捷方式打开MATLAB。在界面上没有任何区别,但是当你画出图之后,你会发现一切都不同了。 (下二图转载自undocumentedmatlab.com,左图为普通模式,右图为HG2模式) HG1_plot.png 普通(HG1)模式(无责任转载自undocumentedmatlab.com) HG2_plot.png HG2模式(无责任转载自undocumentedmatlab.com) 版本在2010以上,感兴趣的同学不妨一试(版本更早其实也可以尝试)。当然目前HG2模式尚不稳定,所以没有向一般用户公开。不过这很可能是下一代MATLAB的发展方向,说不定R2014a的默认绘图模式就是HG2! 总结 目前公认最好的图片导出方案还是export_fig。这个工具包在MATLAB Central上一直下载量排行第一。这个工具包可以完全替代MATLAB自己的图片导出功能,强烈推荐大家使用。我本人现在正在写的一篇文章就全部使用export_fig,而没有使用其他任何的绘图软件。 HG2模式应该是MATLAB的未来发展方向,大家可以先尝个鲜。很有可能在不久的将来就能够在MATLAB中直接生成这种高质量的图像了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值