3D绘图matlab与3个相同大小的矢量

时间:2013-04-08 14:33:01

标签: matlab 3d

我有三个向量,X,Y和Z.所有长度相等(20000,1)。我想在3d图中绘制所有三个。我尝试过使用surfplot3,但无济于事,因为它们要求Z的大小(20000,20000)。有人可以帮忙吗? TIA

X = DAT(3,:);

Y = DAT(4,:);

Z = DAT(11,:);

[x,y] = meshgrid(X,Y);

surf(x,y,Z);

3 个答案:

答案 0 :(得分:2)

您是否尝试过griddataTriScatteredInterp来创建插值曲面?

答案 1 :(得分:1)

NO! plot3不需要Z.如果你想要的是绘制一个点集,那么plot3确实完全符合你的要求。

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

关键是,meshgrid无需使用plot3。事实上,您无需使用meshgrid来尝试使用surf。 (如果您将调用griddata,那么meshgrid将是必要的,但对于SMALLER网格而言。)

如果您需要曲面图,则需要创建曲面。如果这些点分散,那么您的基本选项就是triscatteredintergriddatagridfit等工具,这是文件交换中的最后一个。

答案 2 :(得分:1)

http://www.mathworks.com/matlabcentral/newsreader/view_thread/311767为代码段提供了帮助。

X=rand(1,30);
Y=rand(1,30);
Z=rand(1,30);

[XI YI ZI] = griddata(X,Y,Z,linspace(0,1),linspace(0,1)');

figure
subplot(1,2,1)
trisurf(delaunay(X,Y),X,Y,Z)
subplot(1,2,2);
surf(XI,YI,ZI)