添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

如何读取数据文件的列表以便在GNUplot中使用变量?

2 人不认可

我在一台Linux电脑上工作。我需要在Gnuplot中把一个文件列表(几百个)中的每个数据文件装入一个列表文件(txt)。

当我用我的 "gnu-fitting脚本 "来处理列表文件中的这种多个文件时,如何读取列表文件(txt)中的每个文件名并将每个数据文件(txt)中的变量提取到我的gnu-fitting脚本中?

我更喜欢在我的gnu-script中使用它!但如果可能,请让我知道任何可能的shell脚本。

因此,我需要知道如何制作..."一个循环过程 "来读取列表文件中的文件名,以便对列表中的许多数据文件做相同的拟合过程 很容易~!

例如)类似于[do ... while]的东西,用于Gnuplot从一个列表文件中连续读取许多数据文件名。

Is it possible in Gnuplot??

@ 我有一个gnu拟合脚本(比方说一个简单的数值函数),现在正在为一个单一的数据文件工作。

然而,在脚本中,我每次都要指定 "数据文件的名称",在我当前的脚本中。

但是,我想知道如何对一个列表文件中指定的许多数据文件自动应用这个带有循环过程的脚本。

所以我想知道如何在gnu-script中实现这个循环过程。 我需要在我的gnu-scipt中用C语言做一些类似...的事情。

@ Do, [读取一个列表文件中的数据文件], [运行一个gnu-ftting] while (eof).

@A: 一个简单的Gnu-fitting-脚本。 @B: 一个列表文件,每行包含许多数据文件名。

通过运行 "A",我必须连续处理 "B "中的所有数据文件...!

这就是我的观点。

Is it helpful to understand??

"fit f(x) "Test001.dat" u 1:2 via a, b, c"

通常情况下,我必须像这样指定数据文件的 "名称"~!

但是,我需要应用从 "Test0001.dat "到Test1000.dat的相同拟合过程~!(连续1000个文件~!)

所以,2个主要的问题~!!

@如何在Gnuplot中做到在循环中读取文件名? @如何将数据文件的名称作为脚本中的一个变量?

5 个评论
jww
不清楚问题是什么,也不知道你在问什么。请出示相关代码,并说明你所遇到的确切问题或错误。另请参见 如何创建一个最小的、完整的、可验证的例子 .
好的。对不起,我的英语很差...我想用我的 "gnu-script "为一个列表文件中的许多数据文件做一个自动拟合的结果,这些文件具有相同的格式。问题是,我不知道如何读取和导入列表文件中众多文件的数据。因此,我想自动读取列表文件中每一行的文件名,并尝试将每个文件中的数据用于我的拟合脚本。
我的gnu-脚本对单个数据文件的拟合工作很好~!但是,我想把它变成一个自动过程,用于处理列表文件中的许多文件。在这种情况下,如何读取列表文件中的文件名并将数据作为变量导入我的gnu-script?这就是我的观点~!!。
因此,我需要实现 "一个循环过程",从一个列表文件(txt)中读取文件名,并将这些数据提取到我的gnuplot-fitting-脚本中,该脚本目前只对已经写入我的脚本中的 "单个文件名 "起作用。
jww
希望你能进行基本的研究并做出努力。请出示相关的代码,并说明你在哪里遇到了问题。另请参见 Why is the “how to move the turtle in logo” question closed? How to create a Minimal, Complete,和Verifiable example .
linux
file
gnuplot
David
David
发布于 2019-10-04
1 个回答
theozh
theozh
发布于 2019-10-04
已采纳
0 人赞同

取决于你到底想做什么,以下可能是一个起点...

### 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