想象一下我有一个包含两列的数据文件。gnuplot跑步中
stats 'datafile' u 1:2
Run Code Online (Sandbox Code Playgroud)
允许我找到两列的最小值和最大值。变量
STATS_index_min_x和STATS_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?
据我所知,您无法以这种方式访问文件中的数据(即像数组一样)。
在 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)