gnuplot可以将文件作为参数吗

gnuplot可以将文件作为参数吗,gnuplot,Gnuplot,我有几个不同的文件(aaa.dat,bbb.dat…),gnuplot有没有一种方法可以接收这些文件,比如DATAFILE_a=file('aaa.dat')、DATAFILE_B=file('bbb.dat'),这样我可以在整个脚本中轻松地调用它们,并且只在脚本开始时更改文件名。最方便的方法是使用字符串,其中包含由空格分隔的所有文件名。然后您可以迭代此列表: filelist = "aaa.dat bbb.dat ccc.dat" plot for [file in filelist] fil

我有几个不同的文件(aaa.dat,bbb.dat…),gnuplot有没有一种方法可以接收这些文件,比如DATAFILE_a=file('aaa.dat')、DATAFILE_B=file('bbb.dat'),这样我可以在整个脚本中轻松地调用它们,并且只在脚本开始时更改文件名。

最方便的方法是使用字符串,其中包含由空格分隔的所有文件名。然后您可以迭代此列表:

filelist = "aaa.dat bbb.dat ccc.dat"
plot for [file in filelist] file
或者,如果要为每个数据文件创建一个图像:

do for [file in filelist] {
    set output file.'.png'
    plot file
}
还可以使用系统命令创建文件列表,以选择一些文件:

filelist = system('ls *.dat')
...
或者在调用
gnuplot
时将文件列表作为选项传递:

gnuplot -e "filelist='aaa.dat bbb.dat ccc.dat'" script.gp
其中
script.gp
包含通用打印命令:

do for [file in filelist] { ... }

谢谢,但我需要文件中的信息,而不仅仅是字符串文件的名称-即,如果文件包含4列数据,我希望能够在整个脚本中调用x、y、z、t抱歉,但我不明白你的意思。你能把你的问题扩展到澄清吗?如果您在多个位置需要文件名,您还可以使用例如
file=word(filelist,1)
来提取单个文件名。当然,您仍然可以使用
和所有这些东西来选择不同的列。那么,这种方法有什么问题吗?我的意思不仅仅是文件名,而是它的内容(即0 0 11.209 0.010 250 0 11.122 0.010……)那么,你肯定应该重写你的问题,并展示更多关于你真正需要的信息,以及你尝试过的内容,等等。使用脚本调用gnuplot时只需指定这些文件名:
gnuplot-e“fileA='aaa.dat';fileB='bbb.dat'”script.gp
。这只定义了两个变量
fileA
fileB
,可以在脚本中使用。