我有一個數據表,其中每個步驟的時間增量從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())都記錄在“腳本”索引中,該腳本位於“幫助”下拉菜單下。