Gnuplot: проблемы с подгонкой петли - PullRequest
0 голосов
/ 10 октября 2019

Мне нужно согласовать некоторые данные с гауссовой функцией, которую я определяю с некоторыми начальными параметрами. У меня есть 10 файлов .gr, и код говорит программе сделать цикл для их подгонки, а затем построить файл .gif с эволюцией данных (каждый файл соответствует разному времени). Программа работает и заканчивается файлами .gif и .dat, но пропускает некоторые файлы .gr. Код:

#Define the sequence number from ARG1 to variable id
id = ARG1

#Here we generate filename from sequence number we passed to this script by command call.
filename = sprintf("FeCoBSiNbCu%04d.gr",int(id))

#Command to fit the peak with background
fit [3.68:5.45] f45(x) filename u 1:2 via x4,A4,w4,x5,A5,w5,a0,a1

#Now we write all results into formatted string:
entry1 = sprintf("%d\t%.3f\t%.3f\t%.1f\t%.1f\t%.3f\t%.3f\t",int(id),x4,x4_err,A4,A4_err,w4,w4_err)
entry2 = sprintf("%.3f\t%.3f\t%.1f\t%.1f\t%.3f\t%.3f\t",x5,x5_err,A5,A5_err,w5,w5_err)

print entry1
print entry2

plot filename u 1:($0 >=0 ? $2 : 1/0) w p pt 6 ps 1 lc rgb "black" t "Experimental data",\
     filename u 1:((3.68 <= $1 && $1 <= 5.45) ? f45($1) : 1/0) w l lt 1 lw 3 lc rgb "red" t "Fitted data"

Итак, я называю все имеющиеся у меня файлы четырьмя цифрами FeCoBSiNbCu%04d.gr, но тогда 0008 и 0009 не учитываются, и вместо этого в обоих случаях используется 0000.

Что мне делать?

...