В Windows (и Linux?) Может быть какой-то особый способ сортировки (или несортировки) данных в списке каталогов. Чтобы устранить эту неопределенность, вы можете зациклить ваши файлы по номеру. Однако это предполагает, что все числа от 1 до максимума (= FilesCount
, в вашем случае 600) действительно существуют.
Вы пометили Linux, извините, но я знаю только Windows, и команда для получения списка только имен файлов в Windows - 'dir /B testrun16-*'
.
Есть ли особая причина, по которой вы пишете статистические числа в 7 разных файлах? Почему не в один файл?
Примерно так: ( изменено после комментария OP )
### batch statistics
reset session
FileRootName = 'testrun16'
FileList = system('dir /B '.FileRootName.'-*')
FilesCount = words(FileList)
print "Files found: ", FilesCount
# function for extracting the number from the filename
GetFileNumber(s) = int(s[strstrt(s,"-")+1:strstrt(s,".dat")-1])
set print FileRootName.'_Statistics.dat'
print "File Max UpQ Med LoQ Min Mean"
do for [FILE in FileList] {
stats FILE u 1 nooutput
print sprintf("%d %g %g %g %g %g %g", \
GetFileNumber(FILE), \
STATS_max, STATS_up_quartile, STATS_median, \
STATS_lo_quartile, STATS_min, STATS_mean)
}
set print
plot FileRootName.'_Statistics.dat' \
u 1:2 title 'maximum value', \
'' u 1:3 title 'upper quartile', \
'' u 1:4 title 'median value', \
'' u 1:5 title 'lower quartile', \
'' u 1:6 title 'minimum value', \
'' u 1:7 title 'mean value'
### end of code