matlab创建和绘制三维点

matlab创建和绘制三维点,matlab,matlab-figure,Matlab,Matlab Figure,我正在尝试创建一个包含许多点的网格,并绘制它。 它是这样工作的: for x=roadLeft:10:roadRight for y=0:10:50 for z=0:10:roadTop points(1,i)= x; points(2,i)= y; points(3,i)= z; i=i+1; end end end plot3(points(1,:),points(2,:),po

我正在尝试创建一个包含许多点的网格,并绘制它。 它是这样工作的:

for x=roadLeft:10:roadRight
    for y=0:10:50
       for z=0:10:roadTop
         points(1,i)= x;
         points(2,i)= y;
         points(3,i)= z;
         i=i+1;
      end
    end
end
plot3(points(1,:),points(2,:),points(3,:), '*b')
但这很难看,我相信有一种方法可以用meshgrid实现。 我试着做:

[X,Y,Z] = meshgrid(roadLeft:10:roadRight, 0:10:50,0:10:roadTop);
surf(X,Y,Z)
但我得到了一个错误:

CData must be an M-by-N matrix or M-by-N-by-3 array

Error in graph3d.surfaceplot>localConstructor (line 136)
h = graph3d.surfaceplot(argin{:});

Error in graph3d.surfaceplot (line 7)
h = localConstructor(varargin{:});

Error in surf (line 101)
hh = double(graph3d.surfaceplot(args{:},'parent',parax));

问题出在哪里?我该如何处理?

下面的一行用于绘制由meshgrid创建的三维点:

plot3(X(:), Y(:), Z(:), '*b')

surf
绘制曲面,但您的
meshgrid
调用定义了三维体积。您的问题是关于打印生成的网格还是关于使用
meshgrid
?请指定。我不希望它是一个曲面,只是网格网格中的多个点。因此,您的问题是如何绘制与以前的
plot3
调用类似创建的点
meshgrid
?是的,仅使用网格网格创建相同的输出