web-dev-qa-db-ja.com

Gnuplotでの制御シーケンスの場合

Gnuplotで制御シーケンスを実行する方法を教えてください。私は次のようなものを作る必要があります

if (x == nan)
  set xrange[]

else
  set xrange[10:30]

私は次のようなものを試しました

( x > 100000 ) ?  (set xrange[]) : (set xrange[10:30])

...成功せずにブッ!私はこれを解決しようとして何時間も費やしました!!助けてください?最悪の場合、これを管理するシェルスクリプトを作成できますが、これを修正するための制御シーケンスが必要だと思います。

20
Courier

Gnuplot 4.4.4の場合、ifステートメントは1行である必要があります。

if (x > 10000) set autoscale x; else set xrange [10:30]

または\を使用して次の行に進みます。

if (x > 10000) \
    set autoscale x; \
else \
    set xrange [10:30]

4.6.0以降、gnuplotはブランチを区切るために角括弧を使用できます。

if (x > 10000) {
    set autoscale x
} else {
    set xrange [10:30]
}
30
Christoph