繁体   English   中英

Anylogic系统建模,对数据库使用excel表

[英]Anylogic System Modelling, using excel table for database

有人可以帮我吗? 我是Usind Anylogic。 有一个种群(=种群),分为10个不同的组(取决于年龄)。 我想将其用于我的结构。 我的结构中已经有excel表,但是我不知道如何使用它。 或者使用“ tablefuntion”会更好吗? 我找不到关于此的任何优秀教程。 只有几个例子,您只有一个号码。 例如,库存:起始值=10000。但是我需要库存:起始值=组1:50,组2:30,组3:20。

有人可以帮我吗? 非常感谢!

因此,听起来好像您使用的是阵列库存,其中阵列具有十个值的AnyLogic维。

如果单击Edit...按钮作为初始值,则会看到它们以Java表示法{v1, v2, ..., v10} ,其中v1是第一维替代项的初始值,等等。 (令人困惑的是,这是Java数组符号,与数组不同。)

没有直接的方法可以从Excel数据中初始化它们。 使用AnyLogic 7.2+,您可以很容易地将Excel值输入到AnyLogic数据库表中,但是与基本的AnyLogic变量或参数不同,没有可视化向导来设置查询以填充股票的初始值。

最好的选择是将Excel工作表导入AnyLogic数据库表,然后在模型的启动代码中,通过查询显式循环设置10个值。 您可以在股票上使用set方法(函数)来设置每个值(该值具有两个参数:要设置的值,然后是要设置的维数的编号)。

请参阅AnyLogic帮助Database --> Importing database tables以了解如何将Excel工作表作为表导入。

假设您的表称为stock_vals ,其stock_name (标识值所针对的库存), val1val2等(为维输入1、2等提供double stock_name值)。

然后,假设您的阵列库存称为AgeRange维的population ,其AgeRange选项YOUNGMIDDLE_AGEDOLD (备选项1、2和3-我只是使用了三种备选项,使其更简单)。 然后假设您的表中有条目

"population", 100.0, 200.0, 300.0

然后,您可以在启动逻辑中使用以下代码:

stock.set(selectFrom(stock_vals).where(stock_vals.stock_name.eq("population")).uniqueResult(stock_vals.val1), 1);
stock.set(selectFrom(stock_vals).where(stock_vals.stock_name.eq("population")).uniqueResult(stock_vals.val2), 2);
stock.set(selectFrom(stock_vals).where(stock_vals.stock_name.eq("population")).uniqueResult(stock_vals.val3), 3);

AnyLogic Database --> Querying帮助显示了该数据库选择Java代码的工作方式。

上面的代码可以整理/变得更优雅,但这就是本质。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM