bash:将预先保存的变量加载到 gnuplot cmd 加载



我的目的是为循环加载变量i - 我想让它可用于这个循环。当前状态是 gnuplot 将第一个回显的 var i加载为字符串而不是 var。

SPEED=5
echo "plot '< head -n "$((SPEED*i))" `echo ${INFILE}`' using 1:3 ;">> file.plt
for ((i=1;i<="$FRAMES";i++))                                     
do      
    echo  " 
        load '`echo ${file.plt}`';  
        " | gnuplot
done

我想你可能可以直接在 gnuplot 中完成所有这些......

if(! exists("N")) N=0
FRAMES=10
FILE='myfile.plt'
SPEED=5
f(i)=sprintf("< head -n %d ".FILE,i+SPEED)
plot f(N) using 1:3
if(N < FRAMES) N=N+1
if(N < FRAMES) reread

Gnuplot 4.6 使这变得更加容易:

do for [N=1:10]{
   FILE='myfile.plt'
   SPEED=5
   f(i)=sprintf("< head -n %d ".FILE,i+SPEED)
   plot f(N) using 1:3

}


而不是使用 head ,您可能可以使用 every 数据文件修饰符(有关详细信息help every)。 我认为如下所示:

NPT=N+SPEED
plot FILE every ::::NPT using 1:3

最新更新