У меня есть несколько файлов (по 10 столбцов в каждом) в следующем порядке:

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,

Я хотел бы построить каждый файл отдельной строкой. например используя 1: 2, используя 1: 3, используя 1: 5, используя 1: 8. Я не могу сделать цикл для вызова разных столбцов. Мой следующий сценарий не работает для поля k

 plot for [k=2, 3, 5, 8] for [j=0:8:2] for [i=1:3] 'file_0'.j.i.'.txt' u 1:k;
1
Kay 11 Май 2016 в 05:01

2 ответа

Лучший ответ

Используйте for [k in "2 3 5 8"], если у вас есть список, а не диапазон.

4
Joce 11 Май 2016 в 07:37

Если j может быть & gt; 9, вы должны настроить функцию

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

Чтобы получить правильные имена файлов.

Строка формата "% 02.f" означает число с плавающей запятой (f), без цифр после запятой (.), Минимум две позиции (2), заполните пустое пространство нулями.

print fname(2,3)
    name023

print fname(13,3)
    name133

print fname(113,3)
    name1133

Это строки формата libc, они не задокументированы в документации gnuplot, но в сети есть много источников.

2
Karl 11 Май 2016 в 15:40