1

我的意图是i在循环中加载变量 - 我想让它在这个循环中可用。当前状态是 gnuploti从第一个 echo 加载 var 作为字符串而不是 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
4

1 回答 1

2

我认为您可能可以直接在 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

}


而不是 using head,您可能可以使用everydatafile 修饰符(help every有关详细信息)。我认为类似于以下内容:

NPT=N+SPEED
plot FILE every ::::NPT using 1:3
于 2012-05-10T13:03:08.543 回答