我有一个包含两列的文件,第一列包含纯实数,第二列包含GNUPLOT接受的形式的复数,{a,b}(GNUPLOT相当于+ bi)。我想用第二列的绝对值绘制第一列,所以我尝试了这个:
plot 'data.dat' using 1:abs(2)
答案 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 }'