gnuplot: dritte zeile mitbeachten



  • hi,

    ich habe eine datei mit werten
    x(1) y(1) z(1)
    x(2) y(2) z(2)
    .
    .
    .

    ich möchte nun nur die werte x(i)->y(i) plotten, bei denen z(i) in einem bestimmten bereich ist. zum beispiel zwischen 10 und 20. geht das?


  • Mod

    plot 'datei' using 1:($2/(($3>10)*($3<20)))
    

    Erklärung: ($3>10)*($3<20) gibt 1, falls die dritte Spalte einen Wert zwischen 10 und 20 hat und ergibt 0 in allen anderen Fällen. Im ersten Fall wird also der Wert der zweiten Spalte durch 1 geteilt, also normal gezeichnet. Im Fall dass der Wert der dritten Spalte nicht zwischen 10 und 20 liegt wird durch 0 geteilt und es wird nichts gezeichnet.

    edit: Hmm, das Forum erkennt in meiner Gnuplotkommandozeile fälschlicherweise Smileys und ersetzt diese durch Bildchen. Da wo das Bild ist, steht "Doppelpunkt Klammer auf"

    edit nman: Habe mir gestattet, die Formatierung zu korrigieren.



  • SeppJ schrieb:

    Hmm, das Forum erkennt in meiner Gnuplotkommandozeile fälschlicherweise Smileys und ersetzt diese durch Bildchen.

    Tipp: Unten auf "Smilies in diesem Beitrag deaktivieren" klicken.

    Gruß



  • SeppJ schrieb:

    plot 'datei' using 1:($2/(($3>10)*($3<20)))

    Erklärung: ($3>10)*($3<20) gibt 1, falls die dritte Spalte einen Wert zwischen 10 und 20 hat und ergibt 0 in allen anderen Fällen. Im ersten Fall wird also der Wert der zweiten Spalte durch 1 geteilt, also normal gezeichnet. Im Fall dass der Wert der dritten Spalte nicht zwischen 10 und 20 liegt wird durch 0 geteilt und es wird nichts gezeichnet.

    edit: Hmm, das Forum erkennt in meiner Gnuplotkommandozeile fälschlicherweise Smileys und ersetzt diese durch Bildchen. Da wo das Bild ist, steht "Doppelpunkt Klammer auf"

    danke!

    (du kannst auch code-tags benutzen)


Anmelden zum Antworten