几个函数:subplot;xlim;find;isempty;TickLabelRotate实例解析

《量化投资:以matlab为工具》第四章P132页代码详解


1.subplot(3,1,[1 2]);这句中[]部分如何解读呢?

subplot(m,n)——将绘图区划分为m行*n列的区域

subplot(m,n,p)——将绘图区划分为m行*n列,在第p个区域操作

注:这里注意在m*n的矩阵中编号关系,例如

A= [ 1  1

1 1]

对应元素编号为

1 2

3 4

函数式中p可以为向量,如subplot(2,3,[2 6]),表示某个子图将拉伸扩展填满2-6编号的区域,如下所示

1 2 3

4 5 6


x

x


该命令下方的绘图命令将在四块单位图像大小的区域绘制一张大图~~~是不是棒棒的~!


2.xlim( [1, length( OHLC)] )

这里将一下xlim的几种常用用法

xlim——返回当前x轴的范围

xlim([xmin xmax])——规定当前x轴的范围,从xmin到xmax,示例中就是这种用法,从1到数据截止的最大长度

xlim('auto')——将x轴的范围模式设置为自动,我理解的默认设置就是auto哈,如果不用xmin,xmax设置就不会变成manual

查询当前坐标轴的设置模式可以用命令xlim('mode')


3.ind=find(F(:,2)==1000,1)

find函数有很多强大的用法,一一介绍就太多了。结合这句的意思做个简单地解读:

找到矩阵F第二列中数值等于1000的所有元素(根据上下文这里只有1个等于1000的元素哈,但不排除实际应用情况会有很多相同的元素),返回第一个元素值为1000的元素位置。

举个简单的例子便于理解

A= [ 1 2 2

2 34

3 55 ]

find(A==2,2):返回A中前2个元素值为2的元素所在位置

ans= 2

3

上文提到了矩阵元素遍历的编号(正规叫法我也不清楚哈,暂时这么理解啦),A中2所在的位置有2,3,4,数值3所在的位置有5,7,这个好理解哈

第二个参数2表示输出的时前2个位置


4.if ~isempty(A)

首先,isempty(A)用来判断矩阵A是否为空矩阵,如果是空矩阵,则返回值1,否则返回值0

这个if的判断句,表示当A不是空矩阵时,即 isempty(A) 是0,~0就是1啦,if1表示判断通过,将执行if后的语句。


5.TickLabelRotate(gca, 'x', 30, 'right')

TickLabelRatate用于坐标轴刻度标签旋转。当标签有时间或者长长的字符时特别需要用到的~!可以通过参数设置x轴或者y轴,选择旋转角度和方向。

这里,gca是图形句柄,包含当前图形的坐标属性(内容很丰富的啦,想具体了解每一项的可以用get(gca)得到当前图形的所有坐标属性和参数值。

修改是只要用函数(gca,'某项属性’,‘设置值’,……)就可以修改啦。

例如 set(gca, 'XTick', M),将x的坐标标签设置为M(M是个包含了好几个x轴数值的数组)



如有错误或不到位的地方欢迎交流指正!



你可能感兴趣的:(matlab)