VBA实现的线性插值算法源代码
(2018-05-24 17:44:33)
标签:
excelvba代码 |
分类: VBA专区 |
水文应用中经常用到插值函数,如水位流量互查、水位库容互查等,而Excel作为一个常用的办公工具,如能在Excel中实现这样的函数是很实用的,这里给出一个VBA实现的线性插值算法代码,具体代码如下:
01.'================================02.'
线性插值算法03.'04.'05.'================================06.'Returns an interpolated value
of x07.'doing a lookup of
xarr->yarr08.Public
Function Interp1(xArr As
Variant, _09. yArr
As Variant,
_10. x
As Double) As
Double11. 12.If ((x <
xArr(LBound(xArr))) _13. Or
(x > xArr(UBound(xArr))))
Then14. MsgBox
"Interp1: x is out of bound"15. Exit
Function16.End
If17. 18.If
xArr(LBound(xArr)) = x
Then19. Interp1
= yArr(LBound(yArr))20. Exit
Function21.End
If22.Dim i
As Single23.For i =
LBound(xArr) To
UBound(xArr)24. If
xArr(i) >= x Then25. Interp1
= yArr(i - 1) + (x - xArr(i - 1)) / (xArr(i) - xArr(i - 1)) *
(yArr(i) - yArr(i - 1))26. Exit
Function27. End
If28.Next
i29. 30.End
Function后一篇:VBA实现多列数据合并为一列

加载中…