2016-09-01 4 views
1

データファイル(以下を参照)が十数列あるので、列1の値が次のように2つの列(たとえば5と10)をプロットするだけです。一定の間隔でそのためには、私が定義されている:私はプロットする必要があるとして、列1Gnuplot 5.0 patchlevel 4 - マクロ内の列番号を渡す

の値の間隔:予想通り

inter(min,max,var,colx)=(min<=column(var)&&column(var)<=max?column(colx):NaN) 

すべてが[0.5 0.25]上の列5と10をプロットplot 'data.dat' u (inter(0.25,0.5,1,5)):10を使用して動作します様々な間隔で列の様々なカップルが、私は

inter(min,max,var,colx)=(min<=column(var)&&column(var)<=max?column(colx):NaN) 
plot ARG1 u (inter(ARG2,ARG3,ARG4,ARG5)):ARG6 

を含む、ファイル、PlotInterval.pを作成していると私はcall 'PlotInterval.p' 0.25 0.5 1 5 10でそれを呼び出すときに、私は、エラーメッセージが出ます:

列番号が正しく渡されないように見えます(間隔の最小値と最大値が正しく渡されます)。ここで

data.datの最初の行は、次のとおりです。

0.000000e+000 -1.577475e+000 -7.175042e+000 2.764545e-005 -5.966045e+000 1.451433e-005 -4.665347e+000 -1.412159e-005 6.154827e+000 0.000000e+000 0.000000e+000 3.100275e+002 0.000000e+000 
2.500000e-003 4.346526e+000 -1.305610e+001 3.170804e-005 -5.790276e+000 1.632860e-005 -4.574010e+000 -1.459951e-005 6.069773e+000 -1.521847e+000 -1.521847e+000 3.009973e+002 0.000000e+000 
5.000000e-003 1.055312e+001 -1.861278e+001 3.085889e-005 -5.604992e+000 1.797386e-005 -4.472427e+000 -1.651171e-005 5.977640e+000 -7.909049e+000 -7.909049e+000 3.029022e+002 0.000000e+000 
7.500000e-003 1.676089e+001 -2.476250e+001 3.417608e-005 -5.412398e+000 2.195262e-005 -4.354189e+000 -1.823193e-005 5.874751e+000 -4.333744e+000 -4.333744e+000 2.982168e+002 0.000000e+000 
1.000000e-002 2.276874e+001 -3.064776e+001 3.607515e-005 -5.204357e+000 2.585798e-005 -4.212604e+000 -1.948774e-005 5.763049e+000 -9.444781e+000 -9.444781e+000 2.864735e+002 0.000000e+000 
1.250000e-002 2.901897e+001 -3.670245e+001 3.681956e-005 -4.988488e+000 2.942617e-005 -4.048886e+000 -2.254946e-005 5.638561e+000 -1.512790e+001 -1.512790e+001 2.852074e+002 0.000000e+000 
1.500000e-002 3.479634e+001 -4.301166e+001 4.146322e-005 -4.756663e+000 3.338716e-005 -3.862872e+000 -2.427187e-005 5.499905e+000 -1.618025e+001 -1.618025e+001 2.797585e+002 0.000000e+000 
1.750000e-002 4.052957e+001 -4.899462e+001 4.416380e-005 -4.503088e+000 3.794105e-005 -3.651641e+000 -2.608256e-005 5.350786e+000 -2.219509e+001 -2.219509e+001 2.736614e+002 0.000000e+000 
2.000000e-002 4.657926e+001 -5.503798e+001 4.764674e-005 -4.231202e+000 4.255615e-005 -3.413258e+000 -2.911828e-005 5.187315e+000 -2.519971e+001 -2.519971e+001 2.689015e+002 0.000000e+000 

私は何かが足りないのですか?どのように列番号を渡すことができますか?回避策はありますか?どうもありがとう。

答えて

0

変数ARG1などは文字列変数であり、columnは文字列変数または整数変数の動作が異なります。したがって、columnに与えられた値を整数に明示的にキャストする必要があります。

inter(min,max,var,colx)=(min<=column(int(var))&&column(int(var))<=max?column(int(colx)):NaN) 
plot ARG1 u (inter(ARG2,ARG3,ARG4,ARG5)):ARG6 
関連する問題