2

我只想在“设置表”命令的帮助下将一些 gnuplot 生成的数据保存到数据文件中。数据应该是一个向量和他的长度。矢量偏移量计算到输入文件“filed.dat”的任何点。将矢量数据打印到文件中没有问题。我这样做:

splot 'field.dat' using 1:2:3:(-$2):($3):($1):(sqrt(($1)**2+($2)**2+($3)**2)) with vectors;

输出例如是这样的:

# x y z delta_x delta_y delta_z type
-2 -3 -4  3 -4 -2 i
-1 -3 -4  3 -4 -1 i
 0 -3 -4  3 -4  0 i
 1 -3 -4  3 -4  1 i
 2 -3 -4  3 -4  2 i

但我想将计算出的向量长度添加到输出文件中。它应该如下所示:

 # x y z delta_x delta_y delta_z length type
    -2 -3 -4  3 -4 -2 5.39 i
    -1 -3 -4  3 -4 -1 5.10 i
     0 -3 -4  3 -4  0 5.00 i
     1 -3 -4  3 -4  1 5.10 i
     2 -3 -4  3 -4  2 5.39 i

有谁知道如何用gnuplot做到这一点?

4

1 回答 1

1

这在 gnuplot 中是不可能的,因为最多将六列写入输出文件(对于其他绘图样式而不是vectors它的更少)。

但是,您可以通过例如管道输出表awk以添加以下信息:

set output '| awk ''{\
  if (!match($1, "^#") && length()) {\
      print $1, $2, $3, $4, $5, $6, sqrt($4**2 + $5**2 + $6**2), $7\
  } else {\
      print $0}\
  }'' > field-out.dat'
set table
splot 'field.dat' using 1:2:3:(-$2):3:1 with vectors
unset table

您必须使用set output才能使用管道,set table "| ..."不起作用。

于 2013-10-19T12:38:54.517 回答