|
为此,又编写了一个求区域斜率k、区域偏移量b的自定义函数 kb
Function f_Line(x, x1, y1, x2, y2, Optional m = 0)
k = (y1 - y2) / (x1 - x2): If m = 1 Then f_Line = k: Exit Function
b = (x1 * y2 - x2 * y1) / (x1 - x2): If m = 2 Then f_Line = b: Exit Function
If m = -1 Then y = x: f_Line = (y - b) / k Else f_Line = k * x + b
End Function
Function kb(xr, yr, Optional m = 1, Optional n = 5, Optional d = 4)
x = xr.Value: y = yr.Value
For i = 1 To UBound(x) - n
t1 = f_Line(0, x(i, 1), y(i, 1), x(i + n, 1), y(i + n, 1), m)
t = t + f_Line(0, x(i, 1), y(i, 1), x(i + n, 1), y(i + n, 1), m)
Next
kb = Round(t / (i - 1), d)
End Function
连续统计 20个数据,以间隔5开始计算斜率,并求其平均值。
偏移量的计算也同样。
|
|