GNUPLOT数据文件中的复数

时间:2013-05-29 04:17:19

标签: gnuplot

我有一个包含两列的文件,第一列包含纯实数,第二列包含GNUPLOT接受的形式的复数,{a,b}(GNUPLOT相当于+ bi)。我想用第二列的绝对值绘制第一列,所以我尝试了这个:

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

然而,这似乎不起作用。有谁知道如何告诉GNUPLOT在绘制之前对dat文件中的数据执行操作?

3 个答案:

答案 0 :(得分:3)

它可以节省很多精力并将数据存储在三列中,其中第二列和第三列表示实部和虚部。

您可以通过以下方式实现您的目标:

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

答案 1 :(得分:2)

复杂形式{a,b}只接受a和b的常量,使用你必须使用的abs函数

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

答案 2 :(得分:1)

默认情况下,它只是将您的复数作为字符串读取..这就是:

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 }'