Так строка i
файла содержит f_i L_i
? Вы можете сделать это с помощью вызова функции:
sumval=0 add(x)=(sumval=sumval+x) plot "file.dat" using 0:(add($1*exp(-0.001*(x-$2)**2)))
(здесь абсциссы будут обозначать номер строки, псевдостолбец $0
). Здесь x
предполагается, что она исправлена раньше, например, с помощью x=...
команды.
Но я думаю, что вы хотели для каких-либо x
значений, построить результат суммирования?
Тогда вам нужно будет сделать большое количество этих сумм, нанося только последнюю точку для каждой x
.
N_samples=100 # number of points to plot Xmin=0 Xmax=1. x(ix)=Xmin+(Xmax-Xmin+0.)*ix/N_samples stats "data.dat" N=STATS_records sumval=0 currec=0 finished(v)=(sumval=0,currec=0,v) #reinitialise the counters add(y)=(currec=currec+1,sumval=sumval+y,(currec==N)?finished(sumval):1/0) plot [Xmin:Xmax] for [ix=0:N_samples] "file.dat" using (x(ix)):(add($1*exp(-0.001*(x(ix)-$2)**2)))
Вы не сможете соединить точки линией, если сначала не перенаправите свой график в таблицу, а затем построите эту таблицу.