GNUPLOT: Следуйте команде до следующей строки? - PullRequest
0 голосов
/ 05 мая 2020

У меня есть следующий скрипт tmp.plt для gnuplot:

plot \
"n300_50int/ini-ene.his" using 1:2, \ 
"n500_100int/ini-ene.his" using 1:2, \ 
"n500_1ooint_0.65e3/ini-ene.his" using 1:2, \ 
"n500_50int/ini-ene.his" using 1:2

Но он дает мне ошибку

<b>samuel@samuel-P5Wx6</b>:<b>~/Documents/Fisica/19-20/Radiactividad/Prácticas/Practicas-MontCarlo/PET/Simulaciones</b>$ gnuplot -p tmp.plt 

plot "n300_50int/ini-ene.his" using 1:2, \ 
                                         ^
"tmp.plt", line 2: invalid character \

Я создал этот скрипт со следующим: sh (отредактировано из файла Gnuplot: Нанести несколько файлов в разные папки ):

#!/bin/bash

## truncate tmp.plt and set line style
echo -e "plot \\" > tmp.plt

cnt=0   ## flag for adding ', \' line ending

## loop over each file
for i in */ini-ene.his; do
    if ((cnt == 0)); then       
        cnt=1                   
    else
        printf ", \\ \n" >> tmp.plt             
    fi
    printf "\"$i\" using 1:2" >> tmp.plt 
done
echo "" >> tmp.plt              

И я не понимаю, почему это не работает при следующем test.plt файл делает

f(x)=x
g(x)=2*x
plot \
f(x) , \
g(x)

Спасибо!

1 Ответ

0 голосов
/ 05 мая 2020

Это ошибка из-за backsla sh (\) в файле tmp.plt. Причина в том, что \ должен быть последним символом в строке согласно инструкциям gnuplot. В нерабочем примере после вашего \ стоит пробел. Если вы добавите пробел после \ в рабочем примере, это тоже приведет к ошибке. Как показано здесь:

plot f(x) , \ 
            ^
"test.plt" line 4: invalid character \

Поэтому попробуйте: printf ",\\\n" >> tmp.plt (или просто printf ",\n" >> tmp.plt)

вместо: printf ", \\ \n" >> tmp.plt

...