2016-05-11 3 views
1

Ich habe eine Reihe von Dateien (10 Spalten mit jeweils) mit folgenden Reihenfolge:gnuplot mit muliple Spalten mit Schleife

file_001.txt, file_002.txt, file_003_txt, 
file_021.txt, file_023.txt, file_023.txt, 
file_041.txt, file_042.txt, file_043.txt, 
file_061.txt, file_062.txt, file_063.txt, 
file_081.txt, file_082.txt, file_083.txt, 

Ich mag jede Datei mit anderer Linie zeichnen. z.B. Verwenden Sie 1: 2, 1: 3, 1: 5, 1: 8. Ich kann keine Schleife erstellen, um verschiedene Spalten aufzurufen. Meine folgende Skript funktioniert nicht für k Feld

plot for [k=2, 3, 5, 8] for [j=0:8:2] for [i=1:3] 'file_0'.j.i.'.txt' u 1:k; 

Antwort

4

Verwenden for [k in "2 3 5 8"] wenn Sie eine Liste, anstatt einen Bereich haben.

2

Wenn j sein kann> 9, sollten Sie eine Funktion

fname(j,i) = sprintf("name%02.f%.f",j,i) 

erhalten richtigen Dateinamen einrichten.

Format Zeichenfolge "% 02.f" bedeutet float (f), keine Ziffern nach dem Komma (.), Mindestens zwei Positionen (2), leeren Platz mit Nullen füllen.

print fname(2,3) 
    name023 

print fname(13,3) 
    name133 

print fname(113,3) 
    name1133 

Dies sind libc Formatstrings, sind sie nicht in den gnuplot docs dokumentiert, aber es gibt viele Quellen im Web.