我想使用许多数据集来拟合函数。例如,每次我获得一对数据列(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
答案 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