如何只使用gnuplot从.txt文件中读取一个变量?

时间:2014-05-14 11:02:11

标签: gnuplot

我想用gnuplot绘制一个函数,我需要从.txt文件中读取该行的斜率。 如何使用gnuplot查找此变量?

情况就是这样:

我的.txt文件包含:

0.0121200419333 / 200497.710163

0.0150797824833 / 200496.896578

我需要从第1列第2行读取数据并将其设置为f(x)= a * x + b的斜率并绘制它

1 个答案:

答案 0 :(得分:1)

我认为(请更具体[在答案末尾更新]如果您需要更具体的帮助)您有一个文件(为了原创而称之为file),如下所示:

This is a file with some text in it.
The slope of my curve should be slope = 6.
And some more text here.

并希望使用值slope = 6作为gnuplot中函数的斜率。您需要读取此编号,一旦您知道如何找到它,就应该使用一些bash实用程序。在上面非常简单的情况下,您可以使用slope =在文件中查找grep,然后使用=作为cut的分隔符并告诉awk打印它找到的第一件事:

grep "slope =" file | cut -d "=" -f2 | awk '{print $1}'

现在转到gnuplot并将其用作变量:

slope = `grep "slope =" file | cut -d "=" -f2 | awk '{print $1}'`
plot slope*x

这就是我在我的例子中得到的,slope = 6

enter image description here

您可能需要根据您的问题进行调整,但除非您提供更多详细信息,否则无法为您提供更好的指导。

对于您想要第二行第一条记录的特定情况:

a = `awk 'NR==2 {print $1}' file`
plot a*x