使用gnuplot为多个数据集拟合函数

时间:2014-05-10 22:17:45

标签: gnuplot curve-fitting multiple-databases

我想使用许多数据集来拟合函数。例如,每次我获得一对数据列(x,y)时,我会多次重现一次体验。我将所有这些列放在名为'data.txt'的文件中:

第一次经历:x =第1列,y =第2列

第二次经验:x =第3列,y =第4列

第三次经历:x =第5列,y =第6列

...

现在我希望为这些数据集拟合函数y = f(x)。我不知道Gnuplot能做到吗?如果有可能,请您帮我纠正以下命令?这个不起作用。

fit f(x) "data.txt" u 1:2:(0.25), "data.txt" u 3:4:(0.25), "data.txt" u 5:6:(0.25) via a, b

1 个答案:

答案 0 :(得分:3)

您可以处理数据,以便第1列,第3列和第5列都成为同一列1,第2列,第4列和第6列都成为同一列2.使用awk很容易,你可以在gnuplot之外做到:

awk '{print $1, $2} {print $3, $4} {print $5, $6}' data.txt > data2.txt

然后将其放入gnuplot

f(x)=a*x+b
fit f(x) "data2.txt" u 1:2:(0.25) via a,b

或者您可以在gnuplot内完全无需任何中间文件:

f(x)=a*x+b
fit f(x) "< awk '{print $1, $2} {print $3, $4} {print $5, $6}' data.txt" u 1:2:(0.25) via a,b