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,一经查实,立即删除!

相关文章

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…

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、…

汇编add和mov指令

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

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

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

8086CPU物理地址

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

8086的CS段寄存器(IP)

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

思绪飞扬(一)

喜欢一个呆在房间了,听着音乐,冲一杯香甜的牛奶。任自已的思绪在空气中放飞!似乎这一刻天地之间只有自已。 想想自已已经历了人生的近三分之一的时光。回首之间,二十几年的时间,我们经历了很多事,有…

nginx php fpm 日志,nginx下php-fpm不记录php报错日志怎么办?

解决nginx下php-fpm不记录php报错日志的办法:1、修改【php-fpm.conf】中配置,没有则增加;2、修改【php.ini】中配置,没有则增加;3、重启【php-fpm】即可。解决nginx下php-fpm不记录php报错日志的办法:1.修改php-fpm.co…

【转贴备忘】[教程]iPhone 實機開發 Part 1 - HelloWorld

http://bbs.weiphone.com/read-htm-tid-222380-page-1.html最近小弟開始在研究 iPhone 的開發,無奈找到的資料都是舊的,也不知道怎麼放到 iPhone 上,應該很多人都跟我有同樣的困擾吧!經過幾天的研究總算寫出第一個 HelloWorld,而且可以不用付99元美金就可以放到實機上執行! 今天…

DS和[address]

8086CPU中,用16位寄存器来存储一个字。高8位存放高位字节,低8位存放低位字节。在内存中存储时,由于内存单元是字节单元,则一个字要用两个地址连续的内存单元来存放,这个字的低位存放低地址单元中,高位字节存…

计算机指令格式_计算机科学组织| 指令格式

计算机指令格式指令格式 (Instruction format ) Instruction format describes the internal structures (layout design) of the bits of an instruction, in terms of its constituent parts. 指令格式按照指令的组成部分描述指令位的内部结构(布局设计)。 An Instruction fo…

ejs获取js变量值_EJS变量(注入值)

ejs获取js变量值Hi! Welcome to NODE AND EJS TEMPLATE ENGINE SERIES. Today, we will talk about EJS variables or how we can inject values? 嗨! 欢迎使用NODE和EJS模板引擎系列。 今天,我们将讨论EJS变量或如何注入值? Just like nor…

Visual Basic 9.0 前沿播报·静态篇(六)松弛委托和可为空类型语法增强

本期介绍的两个VB9作为数据开发辅助功能的新特性。CLR在.NET 2.0增加了许多关于委托的新特性(但大部分都不为任何语言所支持),其中一个叫做协变的特性允许放松委托与函数绑定时的签名检查(C# 2.0支持)。为了追求更高的…

3年前的小程序:破解需要delphi IDE 环境的vcl 控件

基本原理:有些vcl组件未注册的话,会显示没有注册的信息,但在设计期间不显示这些信息,表示该组件会检查delphi的ide 环境,解决办法就是让自己的exe带上ide的信息;组件检查ide的办法无非就是使用api查找特定的…

执行POP和PUSH指令后,SS和SP的变化

我们知道push指令是将数据送入栈中,pop指令是将数据从栈顶取出来,8086CPU的入栈和出栈操作都是以字为单位的 比如说将10000H-1000FH这段内存当做栈使用 CPU是通过CS、IP中存放的段地址和偏移地址来知道当前要执行的指令,通过DS和[address]来…

win7 php 上传文件,在LNMP原来的基础上,win7环境下如何上传PHP文件到Linux环境下...

首先,下载一个WINSCP客户端连接主机后,上传文件到自己的保存目录接着进入数据库添加我们的数据库mysql -uroot -p //这个是进入mysql的命令,但是要是你没有加 ln -s /usr/local/mysql/bin/mysql /usr/bin 的话就要输入下面那一行/usr/loc…

HDFC的完整形式是什么?

HDFC:住房发展金融公司 (HDFC: Housing Development Finance Corporation) HDFC is an abbreviation of Housing Development Finance Corporation. It is a well-known housing expansion finance corporation of India which largely makes available housing loa…