我有两个表函数f1:arguments1->值1和f2:参数2->values2通过其参数[]和values[]数组给出。我想把它们链接到一个新的TableFunction g,这样:g的自变量应为:自变量1+0.5*自变量2g的值应为:min{values1,values2}。
有什么方法可以通过代码实现它吗?我试着这样做,然而,我总是有一个问题,当形成笛卡尔乘积时,会出现重复。
试试这个,假设您有两个大小相同的表函数,分别称为t2和t4,并且您的新表函数是newT:
你可以在模拟启动时这样做(注意,如果超出范围,我任意选择线性插值到最接近的值(
double [] values = new double[t2.getValues().length];
double [] arguments = new double[t2.getValues().length];
for(int i = 0; i<values.length;i++){
arguments[i]=t2.getArguments()[i]+0.5*t4.getArguments()[i];
values[i]=min(t2.getValues()[i],t4.getValues()[i]);
}
newT=new TableFunction( arguments, values,
TableFunction.INTERPOLATION_LINEAR, 1, TableFunction.OUTOFRANGE_NEAREST,
0.0 );