MATLAB复制矢量图:绘制好图片之后在命令窗口输入uimenufcn(gcf,'EditCopyFigure') 命令并回车,然后直接到Word中粘贴即可——献给苦苦纠结于MATLAB矢量图的童鞋们
1、楼主的分享精神值得赞赏,但不得不说,楼主以及楼上对MTALAB如何导出矢量图的理解还不够深入。我刚好多年前对此有过研究,不妨也和两位一起分享一下。
2、楼主所说的方法:
uimenufcn(gcf,'EditCopyFigure')与直接使用菜单命令Edit --> Copy Figure在绝大多数情况下并没有区别,事实上,该菜单回调函数大致如下(不同版本可能会有细微差别):
if (ismac && ~isempty(get(hfig, 'JavaFrame')))前面if分支的那一大堆代码都是对于MAC平台的,对于多数使用Windows的朋友,就是后面else分支的那一句而已。
3、接下来,我重点要说的问题就是,上面的方法并不能保证导出的是矢量图。这是因为,在上面说到的Copy Figure菜单后面,还有一个〖Copy Options...〗菜单,用于设置导出图形的选项:
默认选项是Preserve information,即由MATLAB自动决定使用何种格式(在可能的情况下优先使用矢量图)。
那么,现在有两个问题:
(1)如果你在这里的选择是Bitmap,用上面的命令还能导出矢量图吗?答案当然是否定的(不信的话,不妨自己验证一下);
(2)如果按照默认的选项(Preserve information),试一试
peaks;再贴到Word里看看,是不是矢量图?
4、关于eps格式:很多学术期刊对图片的要求是这种格式,但EPS格式在word中显示并不正常(通常看起来比较粗糙,但如果转换成pdf文件则能正常显示)。这个问题我之前研究过,但并不深入,有些问题解决的也不彻底,就不多说了。
本回答被提问者和网友采纳1、uimenufcn(gcf,'EditCopyFigure') 命令并回车,然后直接到Word中粘贴即可。
2、与直接使用菜单命令Edit --> Copy Figure在绝大多数情况下并没有区别,事实上,该菜单回调函数大致如下(不同版本可能会有细微差别):
前面if分支的那一大堆代码都是对于MAC平台的,对于多数使用Windows的朋友,就是后面else分支的那一句而已。
3、接下来,重点要说的问题就是,上面的方法并不能保证导出的是矢量图。这是因为,在上面说到的Copy Figure菜单后面,还有一个【Copy Options...】菜单,用于设置导出图形的选项:
默认选项是Preserve information,即由MATLAB自动决定使用何种格式(在可能的情况下优先使用矢量图)。
4、那么,现在有两个问题:
(1)如果在这里的选择是Bitmap,用上面的命令还能导出矢量图吗?答案当然是否定的;
(2)如果按照默认的选项(Preserve information),试一试
此时的图片已经是矢量图
5、关于eps格式:很多学术期刊对图片的要求是这种格式,但EPS格式在word中显示并不正常(通常看起来比较粗糙,但如果转换成pdf文件则能正常显示)。
我有试过几次都没有成功,最后还是我的上面说的方法奏效了
追答我采用的是matlab7.6.0,选择file,然后下拉菜单里面的save as,保存图片格式为.eps(矢量图的格式),存出来,然后导入到word2007,测试过可实现。同时你还可以通过Export setup选项修改保存出来的图片参数。