我有三个向量,X,Y和Z.所有长度相等(20000,1)。我想在3d图中绘制所有三个。我尝试过使用surf
和plot3
,但无济于事,因为它们要求Z的大小(20000,20000)。有人可以帮忙吗?
TIA
X = DAT(3,:);
Y = DAT(4,:);
Z = DAT(11,:);
[x,y] = meshgrid(X,Y);
surf(x,y,Z);
答案 0 :(得分:2)
您是否尝试过griddata
或TriScatteredInterp
来创建插值曲面?
答案 1 :(得分:1)
NO! plot3
不需要Z.如果你想要的是绘制一个点集,那么plot3
确实完全符合你的要求。
plot3(X,Y,Z,'.')
关键是,meshgrid
无需使用plot3
。事实上,您无需使用meshgrid
来尝试使用surf
。 (如果您将调用griddata
,那么meshgrid
将是必要的,但对于SMALLER网格而言。)
如果您需要曲面图,则需要创建曲面。如果这些点分散,那么您的基本选项就是triscatteredinter
,griddata
或gridfit
等工具,这是文件交换中的最后一个。
答案 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)