2016-02-09 51 views
2

我有一个2D函数,并且在一个splot f(x,y)命令后打印出set table生成的多列数据。splot命令是否可以通过“set table”创建数据块?

代表结构线
gnuplot>f(x,y)=sin(x*y) 
> set table "isocurve.dat" 
> splot [-pi:pi] [-pi:pi] f(x,y) 

数据块由通过集表生成的ASCII文件的单个空行separted。

因此,数据文件只包含一个块。

问题是:是否有可能让isocurves被两条空行分开,以便它们可以作为数据块进行跟踪?

我觉得很有意思,因为这可以让你使用stats命令获得单个isocurves的简单统计信息。举个例子:

set print 'max.dat' 
do for [i=0:10]{ 
stats 'isocurve.dat' u 1:3 index i 
print i,STAS_pos_max_y,STATS_max} 

作为一种变通方法,可以通过管道awk中的isocurve.dat文件,并得到空行增加一倍。但我只是问gnuplot是否可以自己做到这一点。

回答

1

如果使用plot for ...模拟splot,然后迭代保存为单独的数据块:

N = 21 
set table 'table.dat' 
plot for [i=0:(N-1)] f(x, i*pi*(2.0/N) - pi) 
unset table 

虽然这样的作品,它不是那种任务的我会使用的gnuplot的。

+0

谢谢。我也可以用splot生成表格的标准方式;后来这种迭代在每个isocurve上执行统计。 – jmmo

相关问题