在gnuplot中使用sprintf函数中的两个参数

时间:2016-01-07 16:49:45

标签: printf gnuplot

我一直在尝试使用sprintf在同一个gnuplot图上绘制几个文件来读取文件名。我可以在一个论点中读到o.k.如果我写:

filename(n) = sprintf("oi04_saxs_%05d_ave_div_sub.dat", n)
plot for [i=1:10] filename(i) u 1:2

然后我的图表是o.k,我将所有带有该参数的文件绘制在同一图表上。但是我有一串字符在我的文件名末尾附近发生变化,当我尝试在

中反映出来时
filename(n,m) = sprintf("oi04_saxs_%05d_0001_%04s_ave_div_sub.dat",n,m)

plot for [i=1:10] filename(i,m) u 1:2 

我收到以下错误消息:'未定义的变量m'。我尝试删除循环并运行

plot for filename(m)

,这会导致相同的错误消息。帮助理解出了什么问题以及如何修复它将非常感激:)

这是我的完整脚本:

unset multiplot
reset

set termoption enhanced
set encoding utf8

set term pdf size 18cm,18cm font 'Arial'

set pointsize 0.25

set output 'StoppedFlowResults.pdf'

set logscale

set xlabel '{/:Italic r} / [Q]'
set ylabel '{/:Italic Intensity}'

filename(n) = sprintf("./Result_curve-%d.txt/estimate.d", n)

myColorGradient(n) = sprintf("#%02x00%02x", 256-(n-1)*8-1, (n-1)*8)

set key off

set multiplot layout 2,1

filename(n,m) = sprintf("oi04_saxs_%05d_0001_%04s_ave_div_sub.dat",n,m);

plot for [i=1:10] filename(i,m) u 1:2 not

unset multiplot

set output

1 个答案:

答案 0 :(得分:0)

基于dish,您可以进行嵌套迭代,例如:

help for

在你的情况下,你可以将它与字符串混合(你还没有定义字符串可能的值),例如:

plot for [i=1:3] for [j=1:3] sin(x*i)+cos(x*j)