Gnuplot: использование строковой переменной для определения столбцов

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

Возможно ли это?

Я хочу добиться чего-то вроде:

plot '< paste '.filesString.'' u 1:(columnsString)

Кроме того, переменная 'columnsString' будет иметь значение, подобное

(\$2*\$5+\$(6*2-4)*\$(6*2-1))

поэтому он должен иметь возможность оценить все суммы стиля (6 * 2-4), которые находятся в строке. Я хочу подчеркнуть, что этот вопрос касается только оценки "columnsString", переменная "filesString" работает нормально. Как я могу это сделать?

1 ответ

Для этого вы можете использовать set macro. С помощью этого параметра вы можете использовать строчную переменную columnString и поместить ее содержимое где-нибудь в команде, прежде чем это будет оценено:

set macros
columnString = 'column(2)*column(5) + column(6*2-4)*column(6*2-1)'
plot '< paste '.filesString using 1:(@columnString)

Я использовал column() вместо сокращенного $.. для предотвращения возможных проблем с экранированием (похоже, вы вызываете это из некоторого script).

licensed under cc by-sa 3.0 with attribution.