2013-12-03 6 views
17

Wie Kontrollsequenzen unter Gnuplot bitte durchführen? Ich brauche so etwas wieWenn Kontrollsequenz unter Gnuplot

if (x == nan) 
    set xrange[] 

else 
    set xrange[10:30] 

Ich habe versucht, wie

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

... buth ohne Erfolg! Ich habe stundenlang versucht, das zu lösen !! Irgendwelche Hilfe bitte? Im schlimmsten Fall kann ich ein Shell-Skript erstellen und dies verwalten, aber ich denke, es sollte einige Kontrollsequenzen geben, um das zu beheben.

+0

Wo 'X' kommen aus? gnuplot hat ein 'if (...) {} else {}' Konstrukt. – Christoph

+0

Hallo Christoph! Tatsächlich habe ich mein eigenes Skript, das 'x' als Parameter in die gnuplot-Datei eingibt. – Courier

+0

Also was ist mit 'if (x> 10000) {setze xrange [*: *]} else {setze xrange [10:30]}'? – Christoph

Antwort

25

Für gnuplot 4.4.4 die if Anweisung auf einer einzigen Zeile sein muss:

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

oder verwenden \ auf der nächsten Zeile fortzusetzen.

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

Da 4.6.0 gnuplot Klammern verwenden können, die Zweige zu begrenzen:

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