2013-05-29 67 views
2

我有一個兩列的文件,第一個包含純粹的實數,第二個包含GNUPLOT將接受的格式的複數,{a,b}(這是GNUPLOT的等價於a +雙)。我想與第二的絕對值繪製第一列,所以我嘗試這樣做:GNUPLOT數據文件中的複數

plot 'data.dat' using 1:abs(2)

然而,這似乎並沒有工作。有人知道我可以告訴GNUPLOT在繪製dat文件之前對數據執行操作嗎?

回答

3

這將節省您自己的大量工作,並將數據存儲在三列中,其中第二和第三列表示實部和虛部。

你可以實現你在找什麼人:

plot "data" using 1:(sqrt($2**2+$3**2)) 
1

似乎在默認情況下,它只是讀取您的複數爲string..try這樣的:

plot 'data.dat' using 1:(sqrt($2**2+$3**2)) '%lf { %lf , %lf }' 

我想不出一種使用內置abs的方法然而,這種方法不適用於某些原因:

plot 'data.dat' using 1:(abs({$2,$3})) '%lf { %lf , %lf }' 
2

僅複雜形式{a,b}接受a和b的常量,使用必須使用的abs函數

plot 'data.dat' using 1:(abs($2+$3*{0,1}))