我有一个数据表,其中每个步骤的时间增量从0-> n到一系列的几个步骤。
想知道是否存在要编写的bkm脚本,以使每个步骤的时间都从上一步的结束时间开始。
又名:
当前:step1,时间= 0-> 7,step2,时间= 0-> 12
目标:step1,时间= 0-> 7,step2,time7-> 19
忠告?
列:
传感器标签|价值|时间|步
这是一个示例数据表和一个简单的脚本,它们将在步骤更改时调整时间。该脚本首先显示数据表10秒钟,因此您可以看到原始表的外观,然后继续运行该小脚本以调整时间值。
Names Default To Here( 1 );
dt = New Table( "example",
Add Rows( 42 ),
New Column( "time",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
)
),
New Column( "Step",
Character,
"Nominal",
Set Values(
{"Step1", "Step1", "Step1", "Step1", "Step1", "Step1", "Step1", "Step1",
"Step2", "Step2", "Step2", "Step2", "Step2", "Step2", "Step2", "Step2",
"Step2", "Step2", "Step2", "Step2", "Step2", "Step3", "Step3", "Step3",
"Step3", "Step3", "Step3", "Step3", "Step3", "Step3", "Step3", "Step3",
"Step3", "Step3", "Step3", "Step3", "Step3", "Step3", "Step3", "Step3",
"Step3", "Step3"}
)
)
);
wait(10);
For Each Row(
If( Row() == 1,
adder = 0,
If( Lag( :step ) != :step,
adder = :time[Row() - 1]
)
);
:time = :time + adder;
);这很棒! 我注意到的只是一个小问题。在步长更改的时间增量处,它是在重复时间值,而不是递增。 我仍在尝试了解LAG功能。 有小费吗?

最后,在脚本中添加x轴标记以标记轨迹块的任何技巧吗?
我可以根据步骤号为本地最小/最大值创建新列,但不确定如何将其编写到轴标签中。


关于第一个问题,您对步骤之间的增量的要求是
目标:step1,时间= 0-> 7,step2,time7-> 19
请注意,时间值与第一步中的最后一个值以及第二步中的第一次相同。
如果要在步骤之间递增,只需将加法器值更改为所需的附加增量即可
adder = :time[Row() - 1] + 1
当您说“在脚本中添加x轴标记以标记轨迹块”。
最后,所有功能(例如Lag())都记录在“脚本”索引中,该脚本位于“帮助”下拉菜单下。