Anylogic数据集(Data set)的使用

数据集能够存储双精度类型的二维(X,Y)数据,并维护存储数据的每个维度的最新最小值和最大值。数据集仅保留最新数据项的有限数量。

您可以将时间用作数据集的X值,即与采样时点关联的可观察值。队列长度、车辆坐标、流体水平等是此类值的示例。这种数据集称为定时的

或者,您可以记录一个值对另一个值的依赖性——这样的数据集称为相位的

当数据集已满时添加新项将导致最旧的样本丢失,如果丢失的项目包含最小值或最大值,将启动新的最小值/最大值搜索,对于大型数据集可能相当耗时。

因此,对于大型数据集,建议其大小不少于您计划添加的项目数量。

您可以将数据集设置为将数据写入模型执行日志——datasets_log。为此,选择数据集的选项记录到数据库,并按照模型执行日志中的描述启用模型以写入日志。

在运行模型时,您可以查看收集到的数据,并可选择将其复制到剪贴板,以便稍后将其粘贴到其他应用程序中(例如Excel)以进行统计分析。

创建数据集

  1. 分析面板拖动数据集元素到图形编辑器。
  2. 转到属性视图。
  3. 选择使用时间作为水平轴值复选框以使数据集定时。在垂直轴值框中指定动态评估以获取当前数据集值的表达式。
  4. 否则,要使数据集相位化,请清除此复选框,并指定评估水平轴值垂直轴值的表达式。
  5. 数据集可能对它可以存储的最大点数有限制。在保留…最新样本框中输入尾部大小。
  6. 最后,选择您希望如何更新此数据集。

属性

通用

  • 名称 - 数据集的名称。名称用于标识和访问数据集。
  • 忽略 - 如果选中,数据集将从模型中排除。
  • 可见 - 如果选中,数据集在运行时的展示中可见。
  • 显示名称 - 如果选中,数据集的名称将显示在展示图表上。
  • 使用时间作为水平轴值 - 如果选中,数据集是定时的,即当向数据集添加新样本时,使用指定的垂直轴值表达式评估Y值,而X值采用当前模型时间值。
    • 否则,数据集是相位的,即数据集的X和Y值都使用指定的表达式(分别对应水平轴值垂直轴值)进行评估。
  • 水平轴值 - [如果未选择使用时间作为水平轴值,则启用] 动态评估以获取当前相位数据集的X值的表达式。
  • 垂直轴值 - 动态评估以获取当前数据集Y值的表达式。
  • 保留…最新样本 - 数据集的“尾部大小”。定义此数据集将保留的最新数据项的数量。
  • 不要自动更新数据 - 如果选中,数据集不会自动更新。在这种情况下,您应该像在更新分析数据对象中描述的那样自己添加新样本。
  • 自动更新数据 - 如果选中,将从指定的确切时间(选择使用模型时间)或日期(选择使用日历日期)开始自动添加新数据样本,并按指定的重复时间重复。
  • 记录到数据库 - 如果选中,此数据集元素收集的数据将添加到模型执行日志——datasets_log(如果在模型的数据库属性中启用了日志记录)。

功能

填充数据集

功能描述
void add(double x, double y)向数据集添加新数据项。
void add(double y)仅支持选择使用时间(运行次数)作为水平轴值的数据集。调用此函数对于其他数据集将抛出运行时错误。
void fillFrom(DataSet ds)使此数据集成为给定原始数据集的精确副本。
void fillFrom(TableFunction tf)丢弃所有现有数据,将容量设置为给定表函数的条目数,并从给定表函数填充数据集。

检索数据

功能描述
double getXMin()返回所有存储数据项的所有x值的最小值,如果没有项目则为无穷大。
double getXMax()返回所有存储项的所有x值的最大值,如果没有项目则为负无穷大。
double getYMax()返回所有存储项的所有y值的最大值,如果没有项目则为负无穷大。
double getYMin()返回所有存储项的所有y值的最小值,如果没有项目则为无穷大。
double getX(int i)返回具有给定索引的数据项的x(索引必须在0…size()-1范围内)。
double getY(int i)返回具有给定索引的数据项的y(索引必须在0…size()-1范围内)。
int size()返回数据集中存储的项目数。

重置数据

功能描述
void reset()丢弃所有存储的数据及其最小/最大值。

容量

功能描述
int getCapacity()返回数据集的容量。
void setCapacity(int newcapacity)根据新的容量调整数据集的大小。

复制值

功能描述
void allowDuplicateX(boolean yes)设置处理两个连续调用add()的相同X值的方式。如果为true,则在数据集中创建两个条目,否则第二个项目将覆盖最后一个。
void allowDuplicateY(boolean yes)设置处理两个连续调用add()的相同Y值的方式。如果为true,则在数据集中创建两个条目,否则第二个项目将覆盖最后一个。
boolean duplicateXAllowed()测试此数据集中是否允许具有相同X值的连续数据项。如果允许,返回true,否则返回false。
boolean duplicateYAllowed()测试此数据集中是否允许具有相同Y值的连续数据项。如果允许,返回true,否则返回false。

文本表示

功能描述
String toString()返回最多包含1000个数据项的数据集的制表符分隔的多行文本表示。
  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值