我有两个文件file1.dat
,file2.dat
每个文件都包含一个尺寸一致的矩阵(例如,分别为 F1 和 F2)(即它们都是m x n
矩阵)。我知道如何使用 gnuplot 来绘制它们中的任何一个(splot "file1.dat" matrix
例如),但是如何指示 gnuplot 绘制 F1-F2?
问问题
733 次
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 回答