Gnuplot
如何使用 gnuplot 繪製求和函式?
我想繪製以下函式
sum a*exp(-0.001*(x-b)**2)
,其中 a 和 b 值分別列在輸入文件的第一列和第二列中,如下所示a1 b1 a2 b2 a3 b3 ..... an bn
現在我正在使用以下命令繪製它
plot a1*exp(-0.001*(x-b1)**2) + a2*exp(-0.001*(x-b2)**2) + a1*exp(-0.001*(x-b3)**2) ...etc
我需要的是一個簡短的命令來繪製所有數據,而無需一一寫入所有數據。
預期的輸出應該是這樣的一條連續線
最簡單的可能是使用 awk 生成想要的繪圖命令。例如,
f(a,b,x)=a*exp(-0.001*(x-b)**2) sum(x) = `awk <data '{v = v sprintf("f(%s,%s,x)+",$1,$2)} END{print v "0"}'` set xrange [250:650] plot sum(x)
這使用 gnuplot 命令文件中的反引號來執行 awk,它從數據文件中讀取並生成如下字元串:
f(1,2,x)+f(3,4,x)+...0
其中 1,2 3,4 是數據中的前兩組值。gnuplot 使用者自定義函式
sum()
設置為這個,你可以繪製它。