Gnuplot 获取数据文件中特定数据的值?(使用或不使用统计数据)

Pin*_*oyd 7 gnuplot

想象一下我有一个包含两列的数据文件。gnuplot跑步中

stats 'datafile' u 1:2
Run Code Online (Sandbox Code Playgroud)

允许我找到两列的最小值和最大值。变量 STATS_index_min_xSTATS_index_min_y分别给出第一列和第二列的最小值的索引。它在文档中说它们是这样的

data[STATS_index_min_x] == STATS_min_x
Run Code Online (Sandbox Code Playgroud)

现在想象一下需要访问data[STATS_index_min_x-1]or data[STATS_index_min_x+1]。我怎样才能做到这一点 ?实际上,我如何访问中任何列的任何特定数据gnuplot

Rap*_*oth 7

据我所知,您无法以这种方式访问​​文件中的数据(即像数组一样)。

在 Linux/cygwin 上,您可以使用辅助函数,该函数使用awk. 您可以定义以下函数:

getValue(row,col,filename) = system('awk ''{if (NR == '.row.') print $'.col.'}'' '.filename.'')
Run Code Online (Sandbox Code Playgroud)

如果您的数据文件被调用datafile并包含以下值:

1  1.4
2  4.3
3  2.5
4  0.0
5  9.0
Run Code Online (Sandbox Code Playgroud)

这使:

gnuplot> print getValue(3,1,"datafile")
3
gnuplot> print getValue(1,2,"datafile")
1.4
Run Code Online (Sandbox Code Playgroud)