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窗口强大的能力简化了很多操作。以后遇到新的例子还会记录下来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值