Подгонка функции с несколькими наборами данных с использованием 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
Другие вопросы по тегам