大致思路:matlab中生成矢量格式文件-导入Visio中-编辑-导出合适格式-在其他软件中使用

准备工具

  • Matlab 2014b或更高版本
  • Visio 2007或更高版本

    我查看过,Matlab能够输出的矢量化文件大概有*.svg、*.eps、*.pdf三种,但是这三种中,Visio能够打开的只有*.svg。之所以选择Visio,是因为画示意图来说,Visio基本算得上是比较好的选择了。

技术基础

简单的Matlab编程能力(目测你一天就能学会的Matlab知识,差不多就够用)

理论基础

理论基础就直接参看周建锋老师的博文好了:http://blog.sciencenet.cn/blog-3854-760545.html

绘制图像

下面以一个简单的图像示例来表示:

clc;clear ;close all
x = 0 : 0.05 : 10;
y1 = sin(x);
y2 = cos(x);
plot(x, y1, 'LineWidth',2)
hold on
plot(x, y2, 'LineWidth', 2)
legend('Line1','Line2','Location','best') % 加图例,并将之放在最好的Location
axis auto
set(gca,'FontSize',14,'LineWidth', 1,'FontName', 'Times New Roman')
set(gcf,'Position',[400 100 800 600]);
if ~exist('./example.svg','file') % 判断文件是否存在
    saveas(gcf,'./example.svg')
end

得到的图像大致如下:

检查matlab当前的工作路径下,已经有了一个example.svg的文件。将这个文件在Visio中打开。

更简单一点的打开方式是:新建Visio文件,直接讲example.svg拖入Visio中。

我们知道,*.svg是网络通用的矢量图形格式,很多软件中都能直接打开的,最明显的软件当然是各种浏览器了,比如IE。

在上面的代码中,exist('./example.svg','file')是判断matlab的当前目录下文件example.svg是否存在,如果存在就不再生成example.svg 了,避免多次重复生成。但是如果你的图形需要更新,记得删除之前生成的版本。

在Matlab中,另外一种生成*.svg格式的方式是直接在图形窗口->file->save as...->save as type栏选择svg格式即可保存为*.svg格式的文件。当然,你需要自己命名一个文件名。

Visio中打开

在Visio中打开之后,我们大致会得到这样的图形,可以看到,很清晰,矢量化的。

同时,也很明显,它是高度组合化的。

所以,我们需要将之解组合

接下来按照步骤:

1. 选择图形(点击图形or按ctrl+A也行)

2. 点击home下的group

3. 点击解组合(ungroup)

4. 再次重复动作2和3,两次。也就是说说总共需要解组合三次。

下面两张图作为指引。

group功能

解组合功能

在Visio中的后处理

图形在Visio中打开之后便可以生成为其他的图形格式或者直接将visio文件插入word中即可。

  1. 删除白色底纹

    解组合之后,图形下层会有一些白色底矩形,可以将之删除,使图形透明。如下图所示,左下角和右上角的两块矩形分别是原来图形的曲线画布区域和整个图形画布区域的底纹图形填充方块。

  2. 查看图形元素

    当我们选择自由曲线工具之后,在点击图形中的Line2曲线,可以看到,实际上Line2曲线是由自由曲线通过控制很多的节点来实现cos函数图形的绘制的。这也可以让我们反向思考matlab底层的绘制函数时怎么实现曲线的绘制的。

  3. 修改元素

    在Visio中,我们可以选择任何的元素来进行修改,也可以在上面增加或删除任何的元素。这给我们修饰图形方面有了巨大的空间(当然不能进行数据修改以此来发文章)。

原文地址:http://www.cnblogs.com/cyruszhu/p/5477569.html
未经允许,禁止转载!相关请求,请联系作者:yunruizhu@126.com

matlab图形矢量化解决方案的更多相关文章

  1. HT全矢量化的图形组件设计

    HT一直被客户称道的就是其全矢量化的设计特色,矢量相比传统图片好处太多了: 矢量可无级缩放,界面不失真不模糊 描述矢量的文本内容远比图片小得多 目前各种window.devicePixelRatio不 ...

  2. Deep Learning 2_深度学习UFLDL教程:矢量化编程(斯坦福大学深度学习教程)

    1前言 本节主要是让人用矢量化编程代替效率比较低的for循环. 在前一节的Sparse Autoencoder练习中已经实现了矢量化编程,所以与前一节的区别只在于本节训练集是用MINIST数据集,而上 ...

  3. MATLAB学习笔记(十)——MATLAB图形句柄

    (一)图形对象及其句柄 一.图形对象 MATLAB图形对象包括: 1.MATLAB每一个具体图形一定包括计算机屏幕和图形窗口两个对象 二.图形对象句柄 1.定义 MATLAB在创建每一个图形对象时,都 ...

  4. python中numpy对函数进行矢量化转换

    在对numpy的数组进行操作时,我们应该尽量避免循环操作,尽可能利用矢量化函数来避免循环. 但是,直接将自定义函数应用在numpy数组之上会报错,我们需要将函数进行矢量化转换. def Theta(x ...

  5. 【转】MATLAB图形句柄(二)

        MATLAB图形句柄   1.1 图形对象及其句柄 1.2 图形对象属性 1.3 图形对象的创建 1.1 图形对象及其句柄 1.图形对象 MATLAB的图形对象包括计算机屏幕.图形窗口.坐标轴 ...

  6. 使用ArcGIS Earth矢量化高精度的数据(kml转图层转shp/要素类)

    大家好,这次来分享干货.做地理分析的同学,或者需要使用地图却不知道哪里有精度较高矢量数据(如校园图)的时候,怎么办呢? 我们知道ArcGIS提供了精度较高的全球影像图,基于此,可以自己进行矢量化,然后 ...

  7. 网页静态化解决方案-Freemarker demo+语法

    1.网页静态化技术Freemarker 1.1为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道. 对于电商网站的商品详细页来说 ...

  8. BroadcastReceiver插件化解决方案

    --摘自<android插件化开发指南> 1.静态广播和动态广播仅区别于注册方式的不同.静态广播的注册信息保存在PMS中,动态广播的注册信息保存在AMS中 2.发送广播,也就是Contex ...

  9. Matlab图形调色

    Matlab图形调色 Simple example var colormap = require('colormap') options = {   colormap: 'jet',   // pic ...

随机推荐

  1. Route@书写规则的总结

    路由书写规则的总结 概念:Routing System由一组路由组成,每一个路由规则可以匹配一种类型的URL,在请求过来的时候,Ruting ystem 就用它来处理这个URL,路由的任务就是匹配UR ...

  2. poj 3466 A Simple Problem with Integers

    题目链接:http://poj.org/problem?id=3468 http://poj.org/problem?id=3468 http://poj.org/problem?id=3468 思路 ...

  3. CSS之float属性解读

    在web标准的网页中,页面各个元素都是以标准流的方式来进行布局的.即块元素占满指定的宽度,不指定宽度则占满整行(如<p>.<div>元素),内联元素则是在行内一个接一个的从左到 ...

  4. 基于visual Studio2013解决面试题之0610删除重复字符串

     题目

  5. 基于visual Studio2013解决面试题之0503取最大数字字符串

     题目

  6. Servlet的学习之web路径问题

    在这个篇章中,我们来学习下在web开发过程中会碰到的路径写法问题. 在之前的web应用开发,尤其是Servlet的学习过程中,我们碰到多次要写路径的问题,这些路径并不统一,因此这里将大致说明下各个方法 ...

  7. Ubuntu_开启root 登陆

    默认的安装完ubuntu ,root 用户没有开启 1.使用安装时的用户,先给root用户设置密码 设置root密码 sudo passwd root 之后会提示输入新的密码 切换到root用户 su ...

  8. 如何在Linux上检查SSH的版本(转)

    SSH协议规范存在一些小版本的差异,但是有两个主要的大版本:SSH1 (版本号 1.XX) 和 SSH2 (版本号 2.00). 事实上,SSH1和SSH2是两个完全不同互不兼容的协议.SSH2明显地 ...

  9. POJ 2632 Crashing Robots (坑爹的模拟题)

    Crashing Robots Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6599   Accepted: 2854 D ...

  10. IT忍者神龟之中的一个句sql语句——连接同一字段的全部值

    Oracle能够用SYS_CONNECT_BY_PATH字符串聚合函数: SELECT LTRIM(MAX(SYS_CONNECT_BY_PATH(productname, ', ')), ', ') ...