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
?是的,仅使用网格网格创建相同的输出