【问题标题】:GNUPLOT complex numbers in data file数据文件中的 GNUPLOT 复数
【发布时间】:2014-11-29 06:24:57
【问题描述】:

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

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

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

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    这样可以节省大量精力并将数据存储在三列中,其中第二列和第三列分别表示实部和虚部。

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        默认情况下,它似乎只是将您的复数读取为字符串..试试这个:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-10-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多