嗨,我正在使用 gnuplot 绘制数据块中结构化的模拟数据,如下所示:
CurrentTime CurrentState
0 2
1.234 2
1.990 1
2.462 0
CurrentTime CurrentState
0 2
0.895 1
1.456 2
2.052 1
3.017 0
数据块的数量不是严格已知的,但至少是 30 个块。请注意,每个 CurrentTime 的间隔数是不同的。我正在使用以下代码按原样绘制数据
# GNUPlot code
set multiplot layout 2,1 title "Insert title" font ",14"
set tmargin 3
set bmargin 3
set lmargin 5
set rmargin 2
plot "data.txt" every :1 using 1:2:(column(-2)) with linespoints lc variable
由于 multiplot 命令,我要绘制的下一件事将进入下图中。我希望该图成为我设定的时间间隔内数据的平均值。在我想要的伪代码中:
# pseudo code
float start, step, stop;
assign start, step, stop;
define Interval=start, by step, to stop; typed another way Interval=start:step:stop
array sum(size(number of data blocks,length(Interval), length(Interval)))
assign sum=0;
for every data block
for k=0 to length(CurrentTime)
for j=0 to length(Interval)-1
(CurrentTime(k) < Interval(j+1) && CurrentTime(k) > Interval(j-1)) ? sum += CurrentState(k) : sum += 0
average=sum/(Number of data blocks)
我被困在试图在 gnuplot 中实现它。任何帮助都会很棒!