3

我有两个文件file1.datfile2.dat每个文件都包含一个尺寸一致的矩阵(例如,分别为 F1 和 F2)(即它们都是m x n矩阵)。我知道如何使用 gnuplot 来绘制它们中的任何一个(splot "file1.dat" matrix例如),但是如何指示 gnuplot 绘制 F1-F2?

4

2 回答 2

1

不幸的是,(据我所知)没有办法使用 gnuplot 从多个文件中绘制信息。解决方案是编写一个简单的脚本(用您喜欢的语言),将两个文件作为输入并将差异写入输出......然后你可以这样做:

splot "<myscript file1.dat file2.dat" matrix ...

我敢肯定,通过足够的哄骗、使用set table和 shell 魔法,我可以想出一个技巧来做你想做的事(让 gnuplot 输出多个数据文件,发出 shell 命令将数据文件粘贴在一起......),但最后,编写自己的脚本将是一个更清洁的解决方案。

于 2012-04-11T01:20:59.827 回答
1

这是一个在 gnuplot 中使用 awk 的工作示例。

set terminal postscript enhanced colour
set output 'matrixdiff.eps'

unset key 
splot "<awk 'NR==FNR{for(i=1;i<=NF;++i)a[FNR,i]=$i;next}{for(i=1;i<=NF;++i)$i=a[FNR,i]-$i;print}' mat1 mat2" matrix

mat1并且mat2是您要绘制的矩阵文件。awk 脚本来自这里

于 2012-04-11T16:45:07.103 回答