2

我有一个脚本(称为:anim.sh)来读取我的模拟数据,在 gnuplot 中绘制每个数据文件,并将每个数据文件保存为 .gif 文件。数据命名为:g000000、g000007、g000008、g000010 ....等。我的脚本读入这 4 个数据文件并在 gnuplot 中绘制一个图,然后将输出保存为 .gif 文件。我的问题是如何读取这些不规则编号的数据?我有:

do for [i=0:3] {
str_num=sprintf('%03d',i)  #Write integer to string
set term gif
set output 'my_output.'.str_num.'.gif'
set xr [-0.2:0.2]
set yr [-0.2:0.2]
plot 'g000'.str_num w d
}

如果我的文件被称为g000000、g000001、g000002、g000003但它们不是!所以我得到一个错误:

line 8: warning: Skipping unreadable file "g000001"
line 8: No data in plot

如何添加到代码以跳过丢失的文件(例如 g000001 - g000006)并继续循环?

ps 实际上我有数百个文件,而不仅仅是 4 个,所以我不想手动重命名它们。

4

1 回答 1

2

您可以生成所有文件的列表并对其进行迭代:

set terminal gif
set xrange[-0.2:0.2]
set yrange[-0.2:0.2]

filelist = system('ls g00*')
do for [file in filelist] {
    set output 'my_output.'.(file[2:*]).'.gif'
    plot file
}
于 2013-10-31T13:23:28.310 回答