Gnuplot: построение пронумерованных файлов с циклом - PullRequest
0 голосов
/ 11 октября 2018

Я хочу построить файлы данных с именами «0.txt», «1.txt», «2.txt» и т. Д.

Мой скрипт-сценарий выглядит так:

сделать для [i = 0: 9] {

установить xrange [-0.5: 7.5]

установить yrange [-0.5: 7.5]

установить срок pngcairo размер 1280, 720

установить вывод .i. ". Png"

plot .i. ". Txt" матрица с изображением

установить член x11

}

Где .i.является заполнителем для i, который начинается с 0 и увеличивается до 9. Сообщение об ошибке: «строка 8: недопустимое выражение»

Вы видите ошибку или у вас есть идея?

Ответы [ 3 ]

0 голосов
/ 11 октября 2018

Прежде всего, вы должны удалить set term x11, вам нужно настроить свой терминал только один раз.Во-вторых, переместите все постоянные параметры за пределы цикла - они не меняются вообще.

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

set term pngcairo size 1280,720
set xrange [-0.5:7.5]
set yrange [-0.5:7.5]
do for [i=0:9]{
  set output "".i.".png"
  plot "".i.".txt" matrix with image
}

Я протестировал ее (gnuplot 5.2 patchlevel 4), она правильно генерирует желаемый вывод.

0 голосов
/ 12 октября 2018

У меня недостаточно репутации, чтобы комментировать;но здесь есть повторяющийся вопрос

В gnuplot 4.6 были введены циклы «делать для», поэтому убедитесь, что у вас есть современная версия.(Возможно, также должен быть в комментарии).

Пока я здесь, я добавлю решение, которое определяет строку вне цикла:

filename(i) = sprintf("%d.txt",i)

do for [i=1:2]{
 set output "i.png"
 plot filename(i) matrix with image
}
0 голосов
/ 11 октября 2018

Используйте sprintf для форматирования вашей строки:

set xrange [-0.5:7.5]
set yrange [-0.5:7.5]
set term pngcairo size 1280,720

do for [i=0:9] {
    set output sprintf("%d.png", i)
    plot sprintf("%d.txt", i) matrix with image
}
...