2013-09-25 4 views
3

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

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

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

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

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

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

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

ответ

4

Для этого вы можете использовать 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() вместо стенографии $.., чтобы предотвратить возможные проблемы с побега (кажется, вы вызываете это из некоторого сценария).

Смежные вопросы