我在 Linux PC 上工作。我需要将文件列表(几百个)中的每个数据文件放入 Gnuplot 的列表文件(txt)中。
当我对列表文件中的多个文件使用“gnu-fitting 脚本”时,如何读取列表文件(txt)中的每个文件名并将每个数据文件(txt)中的变量提取到我的 gnu-fitting 脚本中?
我更喜欢在我的 gnu 脚本中使用它!但如果可能的话请让我知道任何可能的 shell 脚本。
所以,我需要知道如何......“循环过程”来读取列表文件中的文件名,以便对列表中的许多数据文件执行相同的拟合过程 轻松~!
例如)类似 [do ... while] 的东西让 Gnuplot 从列表文件中连续读取许多数据文件名。
在 Gnuplot 中可以吗?
谢谢。
===
@ 我现在有一个适用于单个数据文件的 gnu 拟合脚本(假设是一个简单的数值函数)。
但是,在脚本中,我每次都必须在当前脚本中指定“数据文件的名称”。
但是,我想知道如何将此脚本与循环过程一起应用于列表文件中自动指定的许多数据文件。
所以我想知道如何在 gnu 脚本中实现这个循环过程。 我需要在我的 gnu-scipt 中用 C 语言做类似...的事情;
@ Do,[读取列表文件中的数据文件],[运行 gnu-ftting] while (eof)。
@A:一个简单的 Gnu 拟合脚本。 @B:每行包含许多数据文件名的列表文件。
通过运行“A”,我必须连续处理“B”中的所有数据文件......!!
这就是我的观点。
对理解有帮助吗? 谢谢。
例如,
“通过a、b、c拟合f(x)“Test001.dat”u 1:2”
通常,我必须像这样指定数据文件的“名称”~!!
但是,我需要应用从“Test0001.dat”到Test1000.dat的相同拟合过程~!! (连续1000个文件~!)
那么,两个主要问题~!!
@如何在 Gnuplot 中循环读取文件名? @如何将数据文件的名称作为脚本中的变量?
谢谢。
最佳答案
根据您具体想要做什么,以下内容可能是一个起点......
### loop in gnuplot with generating filename
reset session
myFile(n) = sprintf("Test%04d.dat", n)
f(x) = a*x**2 + b*x + c
do for [i=1:1000] {
fit f(x) myFile(i) u 1:2 via a,b,c
print a, b, c
# or do something else...
}
### end of code
添加:
### loop certain files in a directory
reset session
myFileList = system('ls Test*.dat') # Linux
myFileList = system('dir /b Test*.dat') # Windows
f(x) = a*x**2 + b*x + c
do for [myFile in myFileList] {
fit f(x) myFile u 1:2 via a,b,c
print a, b, c
# or do something else...
}
### end of code
关于linux - 如何读取数据文件列表以便在 GNUplot 中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58228057/