2016-12-08 6 views
1

У меня проблема с обработкой данных с помощью gnuplot. Мои данные имеют разные номера столбцов в строке. Я хочу построить график с осью X первого столбца и осью Y последней. Последние столбцы всегда различаются по каждой строке.gnuplot: как узнать номер последнего столбца?

Например, мои данные выглядит, что (my.dat)

1 2 
2 1 3 
3 4 4 
4 5 
5 2 1 3 6 

участок 'my.dat' нам 1: (lastcolumn) з.д.

Перед чтением в Gnuplot, можно предварительно процесс данных. Но мой gnuplot - это версия Windows, я не могу использовать awk или любую программу синтаксического анализа. Так что я надеюсь, что он обрабатывается только в gnuplot. Возможно ли это?

Благодаря

ответ

2

Да, вы можете проверить, что с Gnuplot. Идея такова:

Вы анализируете свои данные с помощью stats и внутри using вы проверяете рекурсивно с помощью valid, который является последним действительным. Если достигнут недопустимый столбец, вы возвращаете номер предыдущего столбца, иначе будет проверен следующий столбец. Последняя колонка затем содержится в переменной STATS_max

check_valid_column(c) = valid(c) ? check_valid_column(c + 1) : c - 1 
stats 'my.dat' using (check_valid_column(1)) nooutput 

last_column = int(STATS_max) 
plot 'my.dat' using 1:last_column 
+0

Я никогда об этом не думал. Спасибо за вашу помощь. – aroman

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

  • Нет связанных вопросов^_^