Google apps script Google脚本中的插值函数
我正在使用谷歌表格记录我的用水情况,并希望通过使用线性插值找出我在给定时期内的用水量。我真的很想使用一个类似于预测的函数,但不是使用整个范围进行插值,而是使用上面和下面最近的点 我热衷于自己编写代码(做了很多VBA),但不知道从哪里开始使用google脚本。有人给我一个起点吗 我将采取的程序是:Google apps script Google脚本中的插值函数,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在使用谷歌表格记录我的用水情况,并希望通过使用线性插值找出我在给定时期内的用水量。我真的很想使用一个类似于预测的函数,但不是使用整个范围进行插值,而是使用上面和下面最近的点 我热衷于自己编写代码(做了很多VBA),但不知道从哪里开始使用google脚本。有人给我一个起点吗 我将采取的程序是: Interpolate(x, data_y, data_x) // Check value is within range of known values (could expand functio
Interpolate(x, data_y, data_x)
// Check value is within range of known values (could expand function to use closet two values and extrapolate...)
(is X within XMin and XMax)
// Find closet X value below (X1), corresponding Y1
// Find closet X value above (X2), corresponding Y2
Return Y = Y1+(X-X1)*((Y2-Y1)/(X2-X1))
函数插值(x_范围、y_范围、x_值){
var xValue,yValue,xDiff,yDiff,xInt,index,check=0;
如果(x_值>数学最大应用(数学,x_范围)| x|u值<数学最小应用(数学,x_范围)){
抛出“值不能插值!!”;
返回;
}
对于(变量i=0,iLen=x_range.length;i=x_值和x_范围[i+1][0]
函数插值(x\u范围、y\u范围、x\u值){
var xValue,yValue,xDiff,yDiff,xInt,index,check=0;
如果(x_值>数学最大应用(数学,x_范围)| x|u值<数学最小应用(数学,x_范围)){
抛出“值不能插值!!”;
返回;
}
对于(变量i=0,iLen=x_range.length;i=x_值和x_范围[i+1][0]
Google应用程序脚本使用JavaScript。这可能有助于回答您的问题。您可能希望启动,然后谷歌应用程序脚本使用JavaScript。这可能有助于回答您的问题。您可能希望先开始,然后此骨骼(代码)上的一些肉(解释/关键点/流)会走很长的路。此骨骼(代码)上的一些肉(解释/关键点/流)会走很长的路。
function interpolation(x_range, y_range, x_value) {
var xValue, yValue, xDiff, yDiff, xInt, index, check = 0;
if(x_value > Math.max.apply(Math, x_range) || x_value < Math.min.apply(Math, x_range)) {
throw "value can't be interpolated !!";
return;
}
for(var i = 0, iLen = x_range.length; i < iLen-1; i++) {
if((x_range[i][0] <= x_value && x_range[i+1][0]> x_value) || (x_range[i][0] >= x_value && x_range[i+1][0] < x_value)){
yValue = y_range[i][0];
xDiff = x_range[i+1][0] - x_range[i][0];
yDiff = y_range[i+1][0] - yValue;
xInt = x_value - x_range[i][0];
return (xInt * (yDiff / xDiff)) + yValue;
}
}
return y_range[x_range.length-1][0];
}