介绍两个matlab小函数:
1、gradient
借用别人的例子:
例:
>> x=[6,9,3,4,0;5,4,1,2,5;6,7,7,8,0;7,8,9,10,0]
x =
6 9 3 4 0
5 4 1 2 5
6 7 7 8 0
7 8 9 10 0
>> [Fx,Fy]=gradient(x)
Fx =
3.0000 -1.5000 -2.5000 -1.5000 -4.0000
-1.0000 -2.0000 -1.0000 2.0000 3.0000
1.0000 0.5000 0.5000 -3.5000 -8.0000
1.0000 1.0000 1.0000 -4.5000 -10.0000
Fy =
-1.0000 -5.0000 -2.0000 -2.0000 5.0000
0 -1.0000 2.0000 2.0000 0
1.0000 2.0000 4.0000 4.0000 -2.5000
1.0000 1.0000 2.0000 2.0000 0
从上面的例子可以看出来:
Ix:对于Ix第一列,是x中第二列减去第一列得到的结果;对于Ix最后一列,是x最后一列减去倒数第二列得到的结果;对于Ix的第i列(既不是第一列,也不是最后一列),它是用x中第i+1列减去第i-1列得到的结果除以2得到的值。
Iy和Ix类似,不过求的是行的值。
总之,MATLAB函数gradient返回的是梯度值。
2、prctile
Y=prctile(X,p):当X为向量,Y返回X的p%上分位数;当X为矩阵,分别求各列的上分位数。
上分位数的定义: