【问题标题】:Does tableFunction support using parameters as condtions?表函数是否支持使用参数作为条件?
【发布时间】:2019-03-02 08:59:16
【问题描述】:

我正在尝试使用tableFunction 来推断一些值。如果我将条件输入为静态值,它可以正常工作。

但是,当我使用参数作为条件时,结果变为 NAN。这里的想法是,在一群代理中,我试图使用参数将代理特定值从数据库中获取到表函数中

v3Code

最后,数据看起来像这样:

这里有限制,解决方法还是我在这里错过了什么? 谢谢_InAdvance();

【问题讨论】:

    标签: anylogic


    【解决方案1】:

    这可能取决于您如何创建代理和设置 v3Code 参数。我以前用过这个,我从数据库加载我的代理并从数据库设置参数,它工作得很好。但是,在另一种情况下,我在创建代理后设置了导致类似情况的参数。

    我建议的解决方法是使用仅具有表函数和 v3Code 参数的代理创建另一个名为 functionHolders 的群体。然后,在主启动中填充所有可能的 functionHolders(假设 v3Code 范围从 0 到 4)。

    主要启动代码: for(int i=0;i<5;i++){add_functionHolder(i);}

    当您需要使用该功能时: main.functionHolders.get(v3Code).tabelFunction_area_of_issue()

    【讨论】:

    • 嗨 Mohammed,我正在从数据库中设置所有内容,遇到这个问题真是令人沮丧。我很欣赏你的建议,但它会消耗更多的内存,这是我试图尽可能避免的事情。如果没有直接的解决方案,我想我的方法是在 AnyLogic 之外推断数据并使用数据库中的 SQL 查询创建参数。
    • 我不知道加载条件会出现什么问题,因为我的项目中有一个类似的功能。但是,关于内存,我认为如果您创建函数持有者,尤其是在可能的 v3Code 值的数量明显少于您拥有的代理数量时,内存效率会更高。
    • 我刚刚注意到这可能是一个数据类型问题。 v3Code 参数是否与您要过滤的列类型相同?
    猜你喜欢
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    相关资源
    最近更新 更多