可以从数据集中减去值对并将这些结果分配给另一个数据集吗?

问题描述 投票:0回答:1

我需要在真实模型时间内绘制数据集中的值减去 [i+1] 和 [i] 值的结果。 (减法=[i+1] - [i]).

我准备了一个超时触发的事件,1年发生一次,步骤是:

1.- 仅当 i 和 i+1 索引上的值不等于 0 时,才会执行 for 循环。

2.-将执行减法运算,并将结果与索引一起传递到空数据集,该数据集将用于绘制这些新值。

3.-索引和减法结果将传递到目标数据集(将被绘制成图表)。索引将自行增加,等待下一次迭代。

4.- 如果缺少一些需要减去的对值,则操作将是为索引分配相同的已减去的值,稍后索引也会自行增加。

活动正文:

int index =0;
double resultado =0;
// Simulación: llenar la lista con valores del stock al cambiar de año


  for (int i = 0; i < TFGDS.size(); i++) {
      if (i < TFGDS.size() - 1 && TFGDS.getY(i) != 0.0 && TFGDS.getY(i + 1) != 0.0) {

                resultado = TFGDS.getY(i+1)-TFGDS.getY(i); // Realizando la resta
                      TFGValorAnual.add(index, resultado);  // Asignando valores
                index++; // Aumentando el valor para la proxima asignacion
              
                 }else{
                     TFGValorAnual.add(index, resultado); // asignando el valor anterior
                     index++; // Aumentando el valor para la proxima asignacion
                 }
  };

结果:事件只能将 2 个值为 0 的索引分配给目标数据集,而源数据集正在增长。

我不知道错误在哪里。

anylogic
1个回答
0
投票

我停止使用 for 循环。相反,该事件将每两年发生一次。这将使我的新数据集具有与原始数据集相同的中等大小。但这对于实时情节来说是有效的。

我准备了一个变量(i),每次变化都会增加。这将是进行减法的数据集指导点。

减法公式需要是

结果 = TFGDS.getY(i-1)-TFGDS.getY(i-2);

为了确保该事件使用数据集现有值,因为该事件每 2 年发生一次。

谢谢大家让我的大脑更有创造力。

© www.soinside.com 2019 - 2024. All rights reserved.