matlab figure 嵌套,操作Matlab的Figure窗口(一)

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

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

47094182_1

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

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

单击蓝色的曲线

47094182_2

回到Command Window,执行

>> h = gco;

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

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

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

47094182_3

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

47094182_4

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

47094182_5

获取其句柄

>> h = gco

设置XTick属性

>> set(h, 'XTick',

0:pi/2:2*pi);

横轴变成了下面的样子:

47094182_6

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

>> set(h, 'XTickLabel', {'0',

'π/2', 'π', '3π/2', '2π'});

看下图横轴的效果

47094182_7

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

47094182_8

如果我们还不满意,想要把纵轴的“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);

看看最终纵轴效果

47094182_9

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

47094182_10

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

47094182_11

可以试试用

>> grid minor

将网格变密一些

47094182_12

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

>> grid off

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

>> h = gco;

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

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

47094182_13

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

令人兴奋的好消息(2005-6-7)

从今天起(也可能是昨天)用Google也可以搜到我的Blog了,很高兴,以后流量会更大的拉我测了一下Google搜索关键字及排名搜“乖狗狗” 排名:第八搜“誓言不会融化的那个夏天” 排名:第一搜“Using NameSpace …

struts2自定义拦截器一——模拟登陆权限验证

1、http://localhost:8083/struts2/user.jsp 表示用户已登陆,存放session对象 2、http://localhost:8083/struts2/quit.jsp 表示用户已退出,移除session对象 3、http://localhost:8083/struts2/login/addUIHelloWorld.do 如果session存在则往下执行&…

c语言中fflush函数z_带有示例的C语言fflush()函数

c语言中fflush函数zC中的fflush()函数 (fflush() function in C) Prototype: 原型: int fflush(FILE *filename);Parameters: 参数: FILE *filenameReturn type: 0 or EOF 返回类型: 0或EOF Use of function: 使用功能: When …

masm32使用nmake工具

nmake.exe如果你安装了Visual C你可以在bin文件目录下找到,然后复制到masm32的bin目录下,如果没有安装visual C就百度下一个吧! 使nmake之前,我们的.obj和.res文件都创建好了,在工程建一个文件Makefile,不需要后缀 里面内容填&am…

SQL Server 2005 中的商务智能和数据仓库

SQL Server 2005 中的商务智能和数据仓库 发布日期: 2005年03月11日摘要:本文概述了 SQL Server 2005 Beta 2 中“商务智能”平台的增强功能。本文并非实施指南,而是为读者提供了关于“商务智能”平台增强功能的信息。本页内容 简介SQL Serve…

doublevalue_Java Integer类doubleValue()方法与示例

doublevalue整数类doubleValue()方法 (Integer class doubleValue() method) doubleValue() method is available in java.lang package. doubleValue()方法在java.lang包中可用。 doubleValue() method is used to return the value denoted by this Integer object converted…

MVVM实践教程

算算,从事Silverlight和WPF的开发也有1年多的时间了,虽然时间不算长,虽然还没有突出的成就,但是感觉也还算一般。 但是,从头至今都没有去认真研究和使用过MVVM,虽然它被认为是Silverlight和WPF开发的最佳架…

32位通用寄存器ESP、EIP、EAX、EBX、ECX、EDX,在OD里操作这些寄存器

EIP:指向CPU下一步即将执行的指令 I EIP为00401000,表示,CPU下一步到00401000这个地址去执行,下一步执行push 0x0指令 ESP:始终指向堆栈的最顶端 现在的ESP是0012FFC4,现在堆栈的顶部在这个地址 EAX、EBX、…

aud to php,HKD to PHP

Exchange1 HKD6.27 PHPExchange 1 港元6.27 菲律宾比索Exchange5 HKD31.36 PHPExchange 5 港元31.36 菲律宾比索Exchange10 HKD62.71 PHPExchange 10 港元62.71 菲律宾比索Exchange50 HKD313.55 PHPExchange 50 港元313.55 菲律宾比索Exchange100 HKD627.11 PHPExchange 100 港…

kotlin 二进制_Kotlin程序检查数字是否为二进制

kotlin 二进制Given a number, we have to check whether given number is a binary or not. 给定一个数字,我们必须检查给定的数字是否为二进制。 Example: 例: Input:start 15end 700Output:[153, 370, 371, 407]在Kotlin中检查数字是否为二进制的…

ComboBox联动

//从webservice中取数据ajax Ext.Ajax.request({ url: WebService.asmx/GetComboxFirst, method: POST, //jsonData: { UserName: "" }, headers: { Content-Type: application/json;utf-8 …

汇编add和mov指令

汇编指令add: 格式:add 参数1, 参数2 功能:参数1和参数2相加,将结果赋值给参数1,即 :参数1参数1参数2 汇编指令 mov: 格式:MOV destination,source 功能:将源…

把.NET程序部署到没有安装.NET Framwork的机器上

摘要本文讨论了如何使用Windows Installer技术发布.NET程序,以及如何使用native代码判断目标机器上是否安装有.NET Framework; 如果没有,将自动安装.NET Framework然后安装作者自己的.NET程序。 ------------------------------------------------------…

双层玻璃窗的功效模型matlab,数学建模:双层玻璃窗的功效,80人%的人搞不懂数学的应用价值...

原标题: 数学建模:双层玻璃窗的功效,80人%的人搞不懂数学的应用价值A.Einstein有一句名言:想象力比知识更重要,因为知识是有限的,而想象力包括世界的一切,推动着进步,并且是知识的源…

Java LinkedList addLast()方法与示例

LinkedList addLast()方法 (LinkedList addLast() method) This method is available in package java.util.LinkedList. 软件包java.util.LinkedList中提供了此方法。 This method is used to insert an object at the last or ending stage of the linked list. 此方法用于在…

8086CPU物理地址

8086CPU有20位地址总线,可以传送20位地址,达到1MB寻址能力,但8086CPU内部是16位,表现出来的寻址能力只有64kb。 8086CPU采用一种在内部用用两个16位地址合成的方法来形成一个20位的物理地址。 CPU中的相关部件提供两个16位地址&a…

json php input,在php中读取json输入

php://输入在localhost中正常工作.但在服务器中它返回空.输入(请求)到我的站点是一个json(REST – 应用程序/ json类型),所以$_POST不起作用(请阅读This question).$_POST works with key-value pair type inputs like form-data or x-www-urlencodedkey1value1&…

8086的CS段寄存器(IP)

8086共有四个段寄存器,分别为CS,DS,SS,ES CS为代码段寄存器,还有个与CS息息相关的寄存器叫IP,为指令指针寄存器。 在8086PC机中,设CS中的内容为M,IP的内容为N,8086CPU将从…

array_reverse_PHP array_reverse()函数与示例

array_reversePHP array_reverse()函数 (PHP array_reverse() function) array_reverse() function is used to returns an array in reverse order, it accepts an array and returns a new array with values in reverse order. array_reverse()函数用于以相反的顺序返回数组…

hibernate中PO对象的三种状态分析以及session中的一些方法的区别

hibernate的状态 hibernate的各种保存方式的区(save,persist,update,saveOrUpdte,merge,flush,lock)及 对象的三种状态 hibernate的保存 hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别。 一、预备知识 …