以前,我和很多人一样,总是将数据保存到mat文件中。后来突然发现,如果数据量不大的话,直接将Figure窗口中的图形保存为fig文件是更好的选择。fig文件与一般的图像文件不同,并不是由图像的像素构成,它包含了当前图像的“元数据”,即每条曲线,每种符号的数据。所以,它既是图形文件,也是数据文件。而且,与直接操纵mat文件中存储的数据相比,操纵fig文件中的曲线更加直观方便。

生活中常常遇到这样的情况:需要将相同的数据用不同的方式进行绘制,此时,使用Figure窗口操纵fig文件非常方便。比如,打开一个fig文件,得到如下的图形:

如果需要将曲线横轴的取值由原来的1:299更改为-149:149,可以这样:

选中Figure窗口工具栏的“白色指针”(上图中用红色圈起来的按钮),用它可以选取图像中的各个对象(因为fig文件包含了元数据,因此可以以面向对象的方式操纵图像中的各个元素);

单击蓝色的曲线

回到Command Window,执行

>> h = gco;

获取当前对象(get current object)的句柄,即选中的蓝色曲线的句柄,利用该句柄重新设置曲线横轴的取值:

>> set(h, "XData", -149:149);

看下图,横坐标取值变成了我们需要的形式。

再来一个例子,在Matlab文档中有一个类似的。有如下一个图像

我们想把横轴改为0, pi/2, pi, 3pi/2, 2pi这样的形式。首先用“白色指针”选中当前的Axes,

获取其句柄

>> h = gco

设置XTick属性

>> set(h, "XTick",0:pi/2:2*pi);

横轴变成了下面的样子:

接下来,设置XTickLabel属性,将横轴的数值显示为比较熟悉的形式(关于希腊字母的输入,参见《为了希腊字母》):

>> set(h, "XTickLabel", {"0","π/2", "π", "3π/2", "2π"});

看下图横轴的效果

字体我们不满意,修改起来并不麻烦,虽然可以用相应的函数进行修改,但GUI非常方便。用“白色指针”在横轴上点击右键,在弹出菜单上选择Font(字体),会弹出一个字体对话框,用该对话框修改字体即可。效果如下:

如果我们还不满意,想要把纵轴的“0”和“1”变成“0.0”,“1.0”,可以进行下面的操作:

>> Y =arrayfun(@(x)sprintf("%.1f", x), -1:0.2:1, "UniformOutput",false)

Y =

"-1.0""-0.8""-0.6""-0.4""-0.2""0.0""0.2""0.4""0.6""0.8""1.0"

>> set(h, "YTickLabel", Y);

看看最终纵轴效果

最后看一个操作网格的例子。看下图

上面一副子图中,纵坐标只标注了0 -50 -100,因此,如果打开grid,会相当稀疏,如下

可以试试用

>> grid minor

将网格变密一些

感觉又太密了。解决这个问题不麻烦,使用上面用过的手法即可。首先关掉grid

>> grid off

用“白色指针”选中当前Axes,获取其句柄,设置YTick属性

>> h = gco;

>> set(h, "YTick", -100:25:0);

再次打开grid,效果就好多了

上面的例子都是我在实际中遇到的。Matlab Figure窗口强大的能力简化了很多操作。以后遇到新的例子还会记录下来。

matlab figure 怎么用,操作Matlab的Figure窗口(一)相关推荐

  1. matlab中大figure怎样修改,操作Matlab的Figure窗口(一)

    以前,我和很多人一样,总是将数据保存到mat文件中.后来突然发现,如果数据量不大的话,直接将Figure窗口中的图形保存为fig文件是更好的选择.fig文件与一般的图像文件不同,并不是由图像的像素构成 ...

  2. matlab对像素邻域操作,matlab图像的邻域操作与块操作

    1.图像的滑动邻域操作. 邻域操作是指将每个输入的像素值以及其某个邻域的像素值结合处理而得到对应的输出像素值的过程.邻域通常形状规则.如2*2,2*3之类. 滑动邻域操作一次处理一个像素. 对于m*n ...

  3. matlab对xml文件操作,Matlab读写xml文件

    xml文件以文档对象模型表示,简称DOM(Document Object Model).在Matlab中,使用xmlread读取xml文件成DOM节点,对xml文件的操作转化成对DOM节点的操作,使用 ...

  4. matlab边算边出图命令,Matlab:不包含边境和工具栏的figure(移除保存图片的白边)...

    Matlab:不包含边界和工具栏的figure(移除保存图片的白边) 当我们使用matlab的imshow命令显示图片时,会有白框和工具栏出现.在保存图片时会出现白色的边框.下面将说明如何去除这些显示 ...

  5. matlab输出高质量图片,Matlab 画平滑轮廓 print 高质量 figure | 学步园

    Matlab 画平滑轮廓 print 高质量 figure 在matlab中,想将分割的结果以轮廓的形式显示到灰度图上,要提取.绘制平滑轮廓. 自己提取轮廓.绘制,不方便,效果差. matlab提供了 ...

  6. matlab 画多个函数,Matlab中一个figure函数画多个子图和多个figure函数画多个字图...

    此博文仅为个人学习笔记,仅供个人使用. 1.如何在一个figure里面画多个子图. %subplot(x,y,n)x表示显示的行数,y表示列数,n表示第几幅图片 figure,subplot(221) ...

  7. matlab图像处理 识别颜色,MATLAB图像处理_直接操作像素点进行颜色变换

    需求 直接操作RGB图像的像素点,进行颜色的相关操作. 掌握这个,必须对MATLAB中矩阵的操作有所熟悉,特别是整行.整列的操作. 如: J = [1 2 3; 4 5 6; 7 8 9]; --这里 ...

  8. matlab 改变像素颜色,MATLAB图像处理_直接操作像素点进行颜色变换

    需求 直接操作RGB图像的像素点,进行颜色的相关操作. 掌握这个,必须对MATLAB中矩阵的操作有所熟悉,特别是整行.整列的操作. 如: J = [1 2 3; 4 5 6; 7 8 9]; --这里 ...

  9. matlab 实验七 低层绘图操作,matlab实验内容答案

    实验报实验报告告说说明 明 matlab 课课程程实验实验需撰写需撰写 8 个个实验报实验报告 每个告 每个实验报实验报告内容写每次告内容写每次 实验实验内容中内容中标标号呈黑体大号字号呈黑体大号字显 ...

最新文章

  1. linux服务器之LVS、Nginx和HAProxy负载均衡器的对比
  2. fastjson判空_fastjson JSON 对象为空保留null
  3. Mysql到Redis的数据协议(可以按照写redis的协议,自测已经成功,key值可以自己变化,不一定非要是id)
  4. 如何腾出计算机内存,win7系统(取消)删除虚拟内存让硬盘空间轻松腾出来
  5. ES6新特性_ES6生成器函数声明与调用---JavaScript_ECMAScript_ES6-ES11新特性工作笔记020
  6. 2020 年百度之星·程序设计大赛 - 初赛一 Dec 二维DP,预处理
  7. Activity生命周期详解二
  8. keras实现nlp
  9. ASP.NET 创建网站地图
  10. 关于多字节(ANSI)和宽字符(UNICODE)字符集的那些事儿
  11. 华为交换机配置时区_把华为交换机设置成时钟源服务器(NTP)
  12. 2021年下半年信息安全工程师上午真题及答案解析
  13. android休眠状态,【Android休眠】之Android休眠机制
  14. 博通linux网卡驱动,在64位CentOS 6 系统上安装Broadcom网卡驱动
  15. 【编程题】【Scratch四级】2021.03 程序优化
  16. Linux随笔1 - Linux哲学思想与安装
  17. 计算机控制专业的就业前景,计算机控制管理专业就业前景和就业方向分析
  18. jQuery serialize()、serializeArray()方法实现表单序列化
  19. WEBRTC + vue 建立连接 本地测试
  20. 七月算法机器学习笔记1 微积分与概率论

热门文章

  1. 超好用的会员VIP邮箱推荐,职场达人都在用的商务邮箱
  2. 享受葡萄酒的极致诱惑
  3. 延长SSD寿命——Trim指令的作用及其原理的探索
  4. 【文献精读】HeadFi: Bringing Intelligence to All Headphones
  5. 小日期时间型_货币基金破2%?稳健型选手们来瞧瞧这类基金咯!
  6. 嵌入式工业级5.8G无线图传模块
  7. android preference控件,Android Preference 设置项简单使用详解
  8. unity生成预制体_【Unity·月之泪复刻】Bloom+摇曳+可交互草地
  9. 第二十七章 数据劫持
  10. 计算机cpu 二级缓存,电脑CPU二级缓存有什么用你知道吗