Подгонка функции с несколькими наборами данных с использованием gnuplot
Я хотел бы соответствовать функции, используя много наборов данных. Например, я воспроизводил опыт много раз, каждый раз получая пару столбцов данных (x,y). Я поместил все эти столбцы в файл с именем "data.txt":
первый опыт: x = столбец 1, y = столбец 2
второй опыт: х = столбец 3, у = столбец 4
третий опыт: х = столбец 5, у = столбец 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 ответ
Вы можете обработать свои данные так, чтобы столбцы 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