javascript:外推一组数字

问题描述

我必须根据数据值 v/s time {x-axis= time[],y-axis = data1[]} 绘制图表。我想推断这个数组,然后绘制图形。 我使用了以下代码,这是正确的方法吗?

    function interpolateArray(data,fitCount) {

    var linearInterpolate = function (before,after,atPoint) {
        return before + (after - before) * atPoint;
    };

    var newData = new Array();
    var springFactor = new Number((data.length - 1) / (fitCount - 1));
    newData[0] = data[0]; // for new allocation
    for ( var i = 1; i < fitCount - 1; i++) {
        var tmp = i * springFactor;
        var before = new Number(Math.floor(tmp)).toFixed();
        var after = new Number(Math.ceil(tmp)).toFixed();
        var atPoint = tmp - before;
        newData[i] = linearInterpolate(data[before],data[after],atPoint);
    }
    newData[fitCount - 1] = data[data.length - 1]; // for new allocation
    return newData;
};

data1 = interpolateArray(data1,(data1.length*2))

data2 = interpolateArray(data2,(data2.length*2))

然后我在纪元时间转换日期,然后做同样的事情并转换回UTC时间, 像这样

Timestamp11=interpolateArray(Timestamp11,(Timestamp11.length*2))


for(var i=0;i<Timestamp11.length;i++)
{
console.log(Timestamp11[i]);
var edgeTime11=Timestamp11[i]/1000000
var myDate11 = new Date(Time11)


var utcString = myDate11.toString();
var time = utcString.slice(16,24);

Timestamp11[i] = time;}

window.myLine3 = new Chart(ctx3,charInit3(data1,data2,Timestamp11));

这是推断时间序列数据的正确方法吗??如果不是,请纠正我。

解决方法

顶部

 const interpolateArray = (data,fitCount) => {
  let newData = [];
  let springFactor = Number((data.length - 1) / (fitCount - 1));
  let linearInterpolate = (before,after,atPoint) => {
    return before + (after - before) * atPoint;
  };

  for (var i = 0; i < fitCount - 1; i++) {
    let tmp = i * springFactor;
    let before = Number(Math.floor(tmp)).toFixed();
    let after = Number(Math.ceil(tmp)).toFixed();
    let atPoint = tmp - before;
    newData.push(linearInterpolate(data[before],data[after],atPoint));
  }
  
  // for new allocation
  newData[fitCount - 1] = data[data.length - 1];
  
  return newData;
};

let originalArry = [1,5,3];
let newArry = interpolateArray([1,3],5);
let p1 = document.createElement('div');
let p2 = document.createElement('div');
document.body.appendChild(p1);
document.body.appendChild(p2);
p1.textContent = 'Original Array : ' + JSON.stringify(originalArry);
p2.textContent = 'After Intrapolation( value = 5) : ' + JSON.stringify(newArry);

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...