Привет, я использую GNUPLOT для построения данных моделирования структурированных в блоках данных, как это: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. Любая помощь была бы потрясающей!
Gnuplot - это программа построения графиков, а не численный инструмент. Используйте октавы, максимумы, scilab, python или что-то еще для таких задач. Это можно сделать «на лету» с синтаксисом типа «plot»
Christoph
Спасибо. Я принял ваше предложение и покажу свое решение, если кто-то найдет его полезным. – betafractal