《量化投资:以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轴数值的数组)
如有错误或不到位的地方欢迎交流指正!