2016-02-09 88 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

相關問題