任何逻辑查询如何在插值后 select 来自数据库 [=11g=] 的值
Anylogic query How to select values from a databse table after interpolation
我有一个数据库 table,在 Anylogic 中有 2 列。在将我的输入与第 1 列的值进行比较并进行线性插值后,我想知道查询 dsl 代码或 sql 代码 select 从第 2 列的 table 中获取一个值。
我在 Anylogic 中的代码提供了一个值 x2 where (x1 < x2 < x3
) 而 x2
不在 table 中。我想从 table 中 select 一个基于 x2 where (y1 < y2 < y3)
的值 y2
并且 y2
不在 table 中。所以我想让软件在 table 中查找后 return 值 y2
如下所示:
y2= [(x2-x1)*(y3-y1)/(x3-x1)]+y1
x1 | y1
x3 | y2
x4 | y3
x5 | y4
示例:如果我的代码 returns x=0.15
我希望程序从 table 值 y 中插入并 return 其中:
y =[[0.15-0.1]*(0.0072-0.0127)/(0.2-0.1)]+0.0127= 0.00995
---x | y
0.1 | 0.0127
0.2 | 0.0072
0.3 | 0.0039
0.4 | 0.0020
0.5 | 0.0010
0.3 | 0
谢谢
您可以简单地创建一个 table 函数并将其配置为从数据库加载数据,而不是从内置数据库 table 中选择值并对其进行线性插值。
由于默认选择线性插值作为函数插值类型,您只需调用tableFunction(0.15)
即可得到y = 0.00995
for x = 0.15
.
我有一个数据库 table,在 Anylogic 中有 2 列。在将我的输入与第 1 列的值进行比较并进行线性插值后,我想知道查询 dsl 代码或 sql 代码 select 从第 2 列的 table 中获取一个值。
我在 Anylogic 中的代码提供了一个值 x2 where (x1 < x2 < x3
) 而 x2
不在 table 中。我想从 table 中 select 一个基于 x2 where (y1 < y2 < y3)
的值 y2
并且 y2
不在 table 中。所以我想让软件在 table 中查找后 return 值 y2
如下所示:
y2= [(x2-x1)*(y3-y1)/(x3-x1)]+y1
x1 | y1
x3 | y2
x4 | y3
x5 | y4
示例:如果我的代码 returns x=0.15
我希望程序从 table 值 y 中插入并 return 其中:
y =[[0.15-0.1]*(0.0072-0.0127)/(0.2-0.1)]+0.0127= 0.00995
---x | y
0.1 | 0.0127
0.2 | 0.0072
0.3 | 0.0039
0.4 | 0.0020
0.5 | 0.0010
0.3 | 0
谢谢
您可以简单地创建一个 table 函数并将其配置为从数据库加载数据,而不是从内置数据库 table 中选择值并对其进行线性插值。
由于默认选择线性插值作为函数插值类型,您只需调用tableFunction(0.15)
即可得到y = 0.00995
for x = 0.15
.