在Matlab中使用surf

时间:2015-09-27 09:35:02

标签: matlab graph plot matlab-figure surface

我有两个变量说XYX,Y是每个5*1矩阵 每行代表一个特定的人,XY是代表两个特征的两个变量 我通过某些操作将X,Y的效果组合成Z,因此Z也是一个5 * 1矩阵。

现在我要绘制X,Y,Z。那就是我想绘制(X1,Y1,Z1),(X2,Y2,Z2),...(X5,Y5,Z5)

这就是我所做的。

[x,y]=meshgrid(X,Y)
z=diag(Z)
surf(x,y,z)

我想知道这个绘图点是否为(X1,Y2,Z2),(X1,Y3,Z2)(X2,Y1,Z3)。
因为我想要绘制这些,因为我想绘制每个个人人和组合人。

1 个答案:

答案 0 :(得分:0)

我猜测你想要的是你5个人的3d情节。这将分别绘制5个点。

plot3(X,Y,Z,'ro')

您可以使用Z根据scatter3(X,Y,Z,S,C)值为颜色设置颜色。其中S表示大小,C表示颜色。

scatter3(X,Y,Z,20,Z)
colormap default

回答你的其他问题。 [x,y]=meshgrid(X,Y)会生成两个字段,代表XY的每个组合。使用z = diag(Z),您有一个对角矩阵。因此,您绘制的点是(X1,Y1,Z1),(X1,Y2,0), ... (X2,Y1,0),(X2,Y2,Z2),(X2,Y3,0) ... 因此,如果XY的索引不匹配,您将绘制ZX的所有可能性,但将Y值设置为零

然后使用surf将在这些点上创建一个平面。