Суммирование столбцов с вложенными суммами / циклами в gnuplot

#loops #plot #gnuplot #nested-loops

#циклы #построение графика #gnuplot #вложенные циклы

Вопрос:

Я хочу суммировать значения из следующих столбцов, индексы которых (16, 18, 20, 24, 26, 28, 32, 34, 36) с помощью команд gnuplot без явного ввода индексов.

Я знаю, что есть команда для суммирования значений разных столбцов, индексы которых могут быть выражены с помощью функции переменной:

 plot 'data' using 1 : (sum [col=8:10] column(col*2))
  

Проблема в том, что индексы в моем случае могут быть описаны только двумя переменными, поэтому нужны вложенные циклы / суммы. Псевдокод для индекса будет

 for i=0:2 {for j=0:2 { index = ( j   8   i*4 ) * 2 } }
  

Есть ли способ выполнять вложенные суммирования или циклы for в gnuplot?

Ответ №1:

Все итерации в gnuplot выполняются рекурсивно. Для вложения одного в другой не требуется специального синтаксиса. Например.

 filename(n,m) = sprintf("NAME_%d_%d.dat",n,m)
plot for [i=1:5] for [j=i:5] filename(i,j)