Java代码为
PolynomialSplineFunction estimateFunc = lit.interpolate(sx, sy);
double[] x = new double[num_cy];
for (int i = 0; i < num_cy; i++) {
x[i] = Math.round(buchang) / (double)(num_cy+1) * i;
if(x[i]>=Math.round(buchang)-1)
x[i]=Math.round(buchang)-2;
GLSJ144[i] = estimateFunc.value(x[i]);
if (estimateFunc.isValidPoint(x[i])) {
GLSJ144[i] = estimateFunc.value(x[i]);
} else {
GLSJ144[i] = 0.0;
}
}
python改成这样不对为什么?
estimateFunc = interp1d(sx, sy,kind='linear')
x=list(range(self.num_cy))
for i in range(0, self.num_cy):
x[i] = round(buchang)/(self.num_cy+1) * i
if x[i]>=round(buchang)-1:
x[i]=round(buchang)-2
GLSJ144[i] = estimateFunc(x[i])
print((x[i]))
if estimateFunc(x[i]):
GLSJ144[i] = estimateFunc(x[i])
else:
GLSJ144[i] = 0.0
测试发现两个代码的estimateFunc(x[i])值不一样。求大佬帮忙!