如何在MATLAB中导出矢量图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在MATLAB中导出矢量图相关的知识,希望对你有一定的参考价值。

MATLAB复制矢量图:绘制好图片之后在命令窗口输入uimenufcn(gcf,'EditCopyFigure') 命令并回车,然后直接到Word中粘贴即可——献给苦苦纠结于MATLAB矢量图的童鞋们

1、把示波形图处背景处理成白色的。

2、不能直接用截屏键截屏拷贝到画图工具,这样做出来的图方法后会失真。

3、点击示波器工具栏Edit->copy figure,波形图就拷贝到了粘贴板 ,打开visio2007,将图片复制进去,这时候图片已经是矢量图,但拷贝到word中坐标轴坐标太小了。

4、右击visio中的波形图->形状->组合。

5、取消组合后,波形图的每个部分都是可以拖动,单独设置的,设置好坐标后的波形图效果非常好,且不论怎么放大都不失真。

6、最后是在word中给波形横轴和纵轴加上各自代表的物理量。

参考技术A

1、楼主的分享精神值得赞赏,但不得不说,楼主以及楼上对MTALAB如何导出矢量图的理解还不够深入。我刚好多年前对此有过研究,不妨也和两位一起分享一下。

 

2、楼主所说的方法:

uimenufcn(gcf,'EditCopyFigure')

与直接使用菜单命令Edit --> Copy Figure在绝大多数情况下并没有区别,事实上,该菜单回调函数大致如下(不同版本可能会有细微差别):

if (ismac && ~isempty(get(hfig, 'JavaFrame')))
    % get the figure bits into an image
    % To Do - use hardcopy or print instead
    data = getframe(hfig);
    cda = data.cdata;
    % put the image onto the clipboard
    im = im2java(cda);
    jm = javax.swing.ImageIcon(im);
    im_obj = jm.getImage;
    cb = java.awt.Toolkit.getDefaultToolkit.getSystemClipboard;
    cb.setContents(com.mathworks.hg.util.ImageSelection(im_obj),[]);
    %disp('tried to copy to clipboard')
else
    uimenufcn(hfig, 'EditCopyFigure')
end

前面if分支的那一大堆代码都是对于MAC平台的,对于多数使用Windows的朋友,就是后面else分支的那一句而已。

 

3、接下来,我重点要说的问题就是,上面的方法并不能保证导出的是矢量图。这是因为,在上面说到的Copy Figure菜单后面,还有一个〖Copy Options...〗菜单,用于设置导出图形的选项:

默认选项是Preserve information,即由MATLAB自动决定使用何种格式(在可能的情况下优先使用矢量图)。

 

那么,现在有两个问题:

(1)如果你在这里的选择是Bitmap,用上面的命令还能导出矢量图吗?答案当然是否定的(不信的话,不妨自己验证一下);

(2)如果按照默认的选项(Preserve information),试一试

peaks;
set(findall(gcf,'type','surface'),'facealpha',0.4)
uimenufcn(gcf,'EditCopyFigure')

再贴到Word里看看,是不是矢量图?

 

4、关于eps格式:很多学术期刊对图片的要求是这种格式,但EPS格式在word中显示并不正常(通常看起来比较粗糙,但如果转换成pdf文件则能正常显示)。这个问题我之前研究过,但并不深入,有些问题解决的也不彻底,就不多说了。

本回答被提问者和网友采纳
参考技术B

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文件则能正常显示)。

参考技术C

保存图片的时候选择emf格式即可。

参考技术D matlab可以直接另存为.eps格式的图片,先保存,再插入到word中,也可以是导入矢量图。追问

我有试过几次都没有成功,最后还是我的上面说的方法奏效了

追答

我采用的是matlab7.6.0,选择file,然后下拉菜单里面的save as,保存图片格式为.eps(矢量图的格式),存出来,然后导入到word2007,测试过可实现。同时你还可以通过Export setup选项修改保存出来的图片参数。

从excel中导出高清图片

微软的excel导出的图片往往达不到投稿期刊的要求,诸如复制到word、ppt或者另存为网页等方法得到的图片也不尽人意。

据说复制到Adobe illustrator (AI)软件里可以保存为各种分辨率的位图或者矢量图。

这里推荐一个excel插件XL Toolbox,链接如下:https://www.xltoolbox.net/,可以生成各种规格(dpi)的图片。

 

以上是关于如何在MATLAB中导出矢量图的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB可视化实战系列(二十四)-三维可视化如何利用圆锥图显示向量场?

从excel中导出高清图片

如何在PDF矢量图形中更改Matlab的“ exportgraphics”功能中的字体

投了一篇文章, 文章中的图用的是MATLAB画的,保存成。jpg格式了,审稿人说,让画成矢量图,并保存成。eps

在 Blend for Visual Studio 2013 中导入为矢量图形

matlab 在图像上画矢量