fitting a function with multiple data sets using gnuplot

走远了吗. 提交于 2019-12-02 08:49:25

问题


I would like to fit a function using many data sets. For example, I reproduce an experience many times, each time I obtain a pair of data column (x,y). I put all these column in a file named 'data.txt' :

first experience : x = column 1, y = column 2

second experience : x = column 3, y = column 4

third experience : x = column 5, y = column 6

...

Now I wish to fit a function y = f(x) for these data sets. I do not know if Gnuplot can do that ? If it is possible, could you please help me to correct the following command ? This one does not work.

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:


You can process your data so that columns 1, 3 and 5 all become the same column 1, and columns 2, 4 and 6 all become the same column 2. It's easy with awk, you can do it outside gnuplot:

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

and then fit it within gnuplot:

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

Or you can do it completely within gnuplot without any intermediate file:

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


来源:https://stackoverflow.com/questions/23586904/fitting-a-function-with-multiple-data-sets-using-gnuplot

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!