我的目的是为循环加载变量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