从Gnuplot中的不同文件的列中绘制x,y,z值

时间:2016-06-02 10:05:35

标签: gnuplot

MATLAB脚本为我输出了三个矩阵X,Y,Z,它们保存在三个不同的文件x.dat, y.dat, z.dat中。它们的大小都相等。

我想对x.dat列与y.dat列与z.dat列进行三维绘图,即从三个文件中逐列绘制。怎么能实现这一目标?

编辑:我不确定为什么这个问题不被理解,但我会重新解释同样的问题。 x,y,z值是按列排列的三个不同文件(每个文件中有10列),我想绘制它们。首先使用粘贴命令然后按照Karl的回答我能够做到这一点。

2 个答案:

答案 0 :(得分:0)

使用unix的paste命令,或将数据合并到电子表格中,或将matlab打印在一个文件中。

system("paste x.dat y.dat > xy.dat") # unixoid "paste" command
plot "xy.dat" using 2:4

我理解您的文件如下所示

#x.dat             #y.dat             #z.dat
xa1 xb1 xc1 ..     ya1 yb1 yc1 ..     za1 zb1 zc1 ..
xa2 xb2 xc2 ..     ya2 yb2 yc2 ..     za2 zb2 zc2 ..
xa3 xb3 xc3 ..     ya3 yb3 yc3 ..     za3 zb3 zc3 ..
xa4 xb4 xc4 ..     ya4 yb4 yc4 ..     za3 zb4 zc4 ..
.                  .                  .
.                  .                  .

如果你想制作a,b,c,...的n xyz图,你可以像这样迭代组合文件:

splot for [i=1:n] "xyz.dat" using i:n+i:2*n+i

答案 1 :(得分:0)

Gnuplot无法处理此问题,要么更改matlab脚本以生成一个文件,要么使用unix paste命令:

splot '<paste x.dat y.dat z.dat' u 1:2:3