gnuplot配合是否受终端影响?

gnuplot配合是否受终端影响?,gnuplot,Gnuplot,我有一个gnuplot脚本文件来适应测量数据,使用以下结构: set terminal png ...some format templates... f(x) = a + b*x + c*x**2 fit f(x) "datafile.txt" using "X":"Y" via a, b, c ...some plotting commands etc... 因此,gnuplot表现出一些奇怪的行为: 当我按原样运行脚本时,会出现以下错误: Undefined value dur

我有一个gnuplot脚本文件来适应测量数据,使用以下结构:

set terminal png

...some format templates...

f(x) = a + b*x + c*x**2

fit f(x) "datafile.txt" using "X":"Y" via a, b, c

...some plotting commands etc...
因此,gnuplot表现出一些奇怪的行为:

  • 当我按原样运行脚本时,会出现以下错误:

    Undefined value during function evaluation
    "myscriptfile.gnuplot", line 5: error during fit
    
  • 当我将
    set-terminal-png
    行移动到
    fit
    行之后时,它会毫不费力地运行

  • 通常,我会在包含格式模板和进一步数据处理例程的主脚本开始时加载它。这样做也会显示前面提到的错误消息,即使使用moved
    set terminal
    命令也是如此

由于这只是处理我的数据的第一部分,我真的需要它从主脚本工作。。。我已经尝试过设置初始猜测、FIT_LIMIT并从gnuplot环境加载它。我使用的是gnuplot 4.6.5

有人知道如何解决这个问题,或者
fit
如何受到其他命令的影响吗?或者这是某种错误


编辑:将精简版本的脚本和数据文件上载到。对于减少的数据文件,计算的拟合与测量点不一致,但与完整的数据一致。

我不确定真正的错误是什么,但它似乎与使用“PHEAT”:“RHOT”时使用的
有关,尽管这应该没问题

我可以通过以下最小设置重现您的错误:

数据文件
test.dat

A B
1 2
2 3 
3 4
和一个文件
test.gp

f(x) = a*x**2 + b*x + c
fit f(x) 'test.dat' using "A":"B" via a,b,c
如果我用
gnuplot test.gp
调用这个文件,我会得到与您相同的错误。如果我使用
使用1:2
,它不会出现。如果我将代码粘贴到交互式终端中,错误也会出现,但只出现一次。如果我再次仅重复
fit
命令,则效果良好。我会把这当作一个bug报告

在您发布的脚本中,我还可以通过使用9:8的
而不是
使用“PHEAT”:“RHOT”
来解决这个问题。此外,您必须删除数据文件的第一行,这可以通过
tail
动态完成,这样您就可以使用
绘图的
语句保持
不变。因此,您可以使用:

fit rhotside(x) "< tail -n +2 testdata.txt" using 9:8 via rhot0, rhot1, rhot2
fit rcoldside(x) "< tail -n +2 testdata2.txt" using 9:8 via rcold0, rcold1, rcold2
fit rhotside(x)“
你说得对,安装不应该依赖于终端。然而,如果没有一个完整的测试示例,就无法检查正在发生的事情。因此,请尽量少举一个例子来说明你的问题(只有几行数据文件,只有基本的脚本部分)。我上传了一个(非)工作示例,请参阅底部的编辑。好的,谢谢。那看起来很奇怪。首先我可以复制这个,以后不会。。。今晚晚些时候我会再看一眼,看看发生了什么事。谢谢。顺便说一句,如果我省略了“加载文件”部分,并将内容直接粘贴到主文件中,它会工作。。。这听起来越来越像一个bug。我总是因为使用“a”:“B”
而得到错误,如果我重复它的话。@Bernhard我提交了一个bug。似乎这不完全可以在不同的计算机上复制,但在某种程度上它总是会带来问题。我们拭目以待,谢谢你的反馈。非常感谢,我可以这样做。让我们看看在5.0发布之前,这个bug是否可以修复。