使用n个Z坐标点和mxn(X& Y点)在Matlab上绘制曲面

时间:2014-07-15 21:47:14

标签: matlab plot 3d surface

我有一个问题,我的数据格式化,使得我在Z轴上有n个数据点,并且每个Z数据点都有m个对应的x& y分。我基本上想要有两个2D m点图,但是合并到一个表面上。

我的数据采用以下形式:

z = [0 1 2 3]

data(:, :, 1) = [0 1 2; 2 2 2] (the first row corresponds to the x points, second to the y; the page (the 1) corresponds to the respective z point at which I am plotting said x and y points)

基本上,在z(i),我想要data(:, :, i)。然后最后所有人合并成一个表面。我该如何做到这一点?

可能有助于想象这种情况的一个例子是,如果所有data(:, :, i)的{​​{1}}是均匀的,就像上面的样本一样,那么将绘制一个立方体表面(第12卷)。

1 个答案:

答案 0 :(得分:0)

  

基本上,在z(i),我希望绘制数据(:,:,i)。然后最后所有人合并成一个表面。我该如何做到这一点?

使用scatter3为每个具有一组x,y,z值的点绘制3-D scatter plot

或者,使用plot3make 3-D line plot。注意参数格式。

您可以使用

之类的代码
for ii = 1:length(z)
    x = data(1, :, ii);
    y = data(2, :, ii);
    scatter3(x, y, z*ones(1, length(x));
end

最后,rotate your angle of view使用view([0,0,-1])面向z轴的方向。这样,所有不同z值的层被挤压成一层。

如果你真的想要忽略z值,但只想看到所有点的叠加图,

for ii = 1:length(z)
    x = data(1, :, ii);
    y = data(2, :, ii);
    scatter(x, y);
end
  

可能有助于想象这种情况的一个例子是,如果所有i的数据(:,:,i)都是一致的,就像上面的样本一样,那么就会绘制一个立方体表面(第12卷)。

正如@rayryeng评论的那样,我发现这很难想象。 “12号立方体表面”是什么意思?这部分看起来与上面的描述不同。