从 CSV 文件加载列作为分配给变量的列表
Loading column from CSV file as a list assigned to a variable
given 是 gnuplot 中的一个函数 f(a,b,x,y),我们在这里得到了一个 3D-space 和 x,y,z(使用 splot)。
还给出了以下结构的 csv 文件(没有任何 header):
2 4
1 9
6 7
...
有没有办法把第一列的所有值都读出来赋值给变量a?隐含地它应该创建类似的东西:
a = [2,1,6]
b = [4,9,7]
我们的想法是绘制函数 f(a,b,x,y) 对所有 a,b 元组进行迭代。
我已经阅读了其他帖子,希望与它相关,例如Reading dataset value into a gnuplot variable (start of X series)。但是我无法取得任何进展。
有没有一种方法可以遍历具有两列的 csv 文件的所有行,使用一行的每一列值作为函数的参数?
假设您有以下名为 data
的数据文件:
1 4
2 5
3 6
您可以使用 awk
系统调用轻松地将第一列和第二列的值加载到变量 a
和 b
(您也可以使用 plot
预处理来完成此操作使用 gnuplot 但这样更复杂):
a=system("awk '{print }' data")
b=system("awk '{print }' data")
f(a,b,x,y)=a*x+b*y # Example function
set yrange [-1:1]
set xrange [-1:1]
splot for [i in a] for [j in b] f(i,j,x,y)
这是一个不需要系统调用的 gnuplot-only 解决方案:
a=""
b=""
splot "data" u (a=sprintf(" %s %f", a, ), b=sprintf(" %s %f", b, \
)):(1/0):(1/0) not, for [i in a] for [j in b] f(i,j,x,y)
given 是 gnuplot 中的一个函数 f(a,b,x,y),我们在这里得到了一个 3D-space 和 x,y,z(使用 splot)。
还给出了以下结构的 csv 文件(没有任何 header):
2 4
1 9
6 7
...
有没有办法把第一列的所有值都读出来赋值给变量a?隐含地它应该创建类似的东西:
a = [2,1,6]
b = [4,9,7]
我们的想法是绘制函数 f(a,b,x,y) 对所有 a,b 元组进行迭代。
我已经阅读了其他帖子,希望与它相关,例如Reading dataset value into a gnuplot variable (start of X series)。但是我无法取得任何进展。
有没有一种方法可以遍历具有两列的 csv 文件的所有行,使用一行的每一列值作为函数的参数?
假设您有以下名为 data
的数据文件:
1 4
2 5
3 6
您可以使用 awk
系统调用轻松地将第一列和第二列的值加载到变量 a
和 b
(您也可以使用 plot
预处理来完成此操作使用 gnuplot 但这样更复杂):
a=system("awk '{print }' data")
b=system("awk '{print }' data")
f(a,b,x,y)=a*x+b*y # Example function
set yrange [-1:1]
set xrange [-1:1]
splot for [i in a] for [j in b] f(i,j,x,y)
这是一个不需要系统调用的 gnuplot-only 解决方案:
a=""
b=""
splot "data" u (a=sprintf(" %s %f", a, ), b=sprintf(" %s %f", b, \
)):(1/0):(1/0) not, for [i in a] for [j in b] f(i,j,x,y)