数据集能够存储双精度类型的二维(X,Y)数据,并维护存储数据的每个维度的最新最小值和最大值。数据集仅保留最新数据项的有限数量。
您可以将时间用作数据集的X值,即与采样时点关联的可观察值。队列长度、车辆坐标、流体水平等是此类值的示例。这种数据集称为定时的。
或者,您可以记录一个值对另一个值的依赖性——这样的数据集称为相位的。
当数据集已满时添加新项将导致最旧的样本丢失,如果丢失的项目包含最小值或最大值,将启动新的最小值/最大值搜索,对于大型数据集可能相当耗时。
因此,对于大型数据集,建议其大小不少于您计划添加的项目数量。
您可以将数据集设置为将数据写入模型执行日志——datasets_log。为此,选择数据集的选项记录到数据库,并按照模型执行日志中的描述启用模型以写入日志。
在运行模型时,您可以查看收集到的数据,并可选择将其复制到剪贴板,以便稍后将其粘贴到其他应用程序中(例如Excel)以进行统计分析。
创建数据集
- 从分析面板拖动数据集元素到图形编辑器。
- 转到属性视图。
- 选择使用时间作为水平轴值复选框以使数据集定时。在垂直轴值框中指定动态评估以获取当前数据集值的表达式。
- 否则,要使数据集相位化,请清除此复选框,并指定评估水平轴值和垂直轴值的表达式。
- 数据集可能对它可以存储的最大点数有限制。在保留…最新样本框中输入尾部大小。
- 最后,选择您希望如何更新此数据集。
属性
通用
- 名称 - 数据集的名称。名称用于标识和访问数据集。
- 忽略 - 如果选中,数据集将从模型中排除。
- 可见 - 如果选中,数据集在运行时的展示中可见。
- 显示名称 - 如果选中,数据集的名称将显示在展示图表上。
- 使用时间作为水平轴值 - 如果选中,数据集是定时的,即当向数据集添加新样本时,使用指定的垂直轴值表达式评估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个数据项的数据集的制表符分隔的多行文本表示。 |