【问题标题】:How to organize data from different datafiles in Fortran如何在 Fortran 中组织来自不同数据文件的数据
【发布时间】:2016-11-19 22:00:48
【问题描述】:

我用的是Fortran 95,现在遇到如下问题:

  • 我有 8 个数据文件,每个 4 列,它们是由其他程序生成的(每个文件包含不同初始条件集的微分方程的解)。
  • 第 4 列是我的 x 变量,第 2 列是我的 f(x)
  • 所以,我只想创建一个包含 9 列的新文件(第一列中的 x 和其他列中每个文件的 f(x))。
  • 但是,每个文件都有不同的 x 值(及其各自的 f),例如一个为 1.10、1.30 和 1.40,另一个为 1.15、1.25 和 1.42。
  • 所以,我可以在x 中取一个“带”,例如 [1.00;1.20],然后在我的新文件中将此平均值写为x,然后在该带中运行f(x)在它下面。

但我无法做到。

【问题讨论】:

  • 从你的标签来看,你想用gnuplot绘制你的数据吗?为什么不像这样绘制每个文件:plot 'file1.dat' u 4:2
  • 是的,我想绘图,但我还必须在其他程序中输入相同 xs 的 fs...
  • 您似乎想使用插值来为所有数据集提供相同的 x-val。这真的超出了本网站的范围,直到您遇到一些代码时遇到问题。
  • 谢谢,我想这就是我想要的。

标签: fortran gnuplot fortran90


【解决方案1】:

我会尝试将带有smooth csplines 选项的文件绘制到一个临时文件中:

set format x "%10.3f"
set format y "%10.3f"

set xrange [...]
set samples ...

set table "temp1.dat"
plot 'file1.dat' using 4:2 smooth csplines
unset table

如果您可以使用样条插值,这将有效。无法以 csv 格式打印线性插值点。您可能想学习一点 Fortran(询问您是否需要它来进行进一步的研究)来进行线性插值。或任何其他编程语言。

要使用一个命令绘制所有文件,例如检查答案 Loop structure inside gnuplot?

然后,在 linux 上,您可以使用 colrmpaste 组合生成的数据。

cat temp1.dat | colrm 11 > x
cat temp1.dat | colrm 1 11 | colrm 12  > y1
cat temp2.dat | colrm 1 11 | colrm 12  > y2
...

paste x y1 y2 ... > combined.dat

根据需要调整常量。

同样,学习一门编程语言也可能会有所帮助。

【讨论】:

    猜你喜欢
    • 2016-03-24
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多