2013-12-03 9 views
17

Come eseguire sequenze di controllo in Gnuplot, per favore? ho bisogno di fare qualcosa di simile aSe sequenza di controllo in Gnuplot

if (x == nan) 
    set xrange[] 

else 
    set xrange[10:30] 

ho provato qualcosa di simile

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

... buth senza successo! Ho passato ore a cercare di risolvere questo !! Qualche aiuto per favore? Nel peggiore dei casi posso creare uno script di shell e gestirlo, ma penso che ci dovrebbero essere alcune sequenze di controllo per risolvere questo problema.

+0

Dove non 'x' vengono? gnuplot ha un costrutto 'if (...) {} else {}'. – Christoph

+0

Ciao Christoph! Infatti ho il mio script che inserisce 'x' come parametro nel file gnuplot. – Courier

+0

Che dire di 'if (x> 10000) {set xrange [*: *]} else {set xrange [10:30]}'? – Christoph

risposta

25

Per gnuplot 4.4.4 la dichiarazione if deve essere su una sola riga:

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

o utilizzare \ per continuare sulla riga successiva.

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

Dal 4.6.0 gnuplot può utilizzare parentesi per delimitare i rami:

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