Matlab 用3个大小相等的向量绘制3D图
我有三个向量,X,Y和Z。它们的长度都相等(20000,1)。我想在3d绘图中绘制所有三个。我尝试过使用Matlab 用3个大小相等的向量绘制3D图,matlab,3d,Matlab,3d,我有三个向量,X,Y和Z。它们的长度都相等(20000,1)。我想在3d绘图中绘制所有三个。我尝试过使用surf和plot3,但没有效果,因为它们要求Z的大小为2000020000。有人能帮忙吗? 短暂性脑缺血发作 您是否尝试过griddata或TriScatteredInterp创建插值曲面?您是否尝试过griddata或TriScatteredInterp创建插值曲面?否plot3不需要Z。如果您只想绘制一个点集,则plot3完全按照您的要求进行 plot3(X,Y,Z'.') 关键是,对于
surf
和plot3
,但没有效果,因为它们要求Z的大小为2000020000。有人能帮忙吗?
短暂性脑缺血发作
您是否尝试过
griddata
或TriScatteredInterp
创建插值曲面?您是否尝试过griddata
或TriScatteredInterp
创建插值曲面?否plot3
不需要Z。如果您只想绘制一个点集,则plot3
完全按照您的要求进行
plot3(X,Y,Z'.')
关键是,对于plot3
,无需使用meshgrid
。事实上,没有必要像您尝试使用surf
那样使用meshgrid
。(如果要调用griddata
,则需要meshgrid
,但网格较小。)
如果需要曲面打印,则需要创建曲面。如果点是分散的,那么您的基本选项是像triscatteredinter、griddata或文件交换中的最后一个这样的工具。否
plot3
不需要Z。如果您只想绘制一个点集,则plot3
完全按照您的要求进行
plot3(X,Y,Z'.')
关键是,对于plot3
,无需使用meshgrid
。事实上,没有必要像您尝试使用surf
那样使用meshgrid
。(如果要调用griddata
,则需要meshgrid
,但网格较小。)
如果需要曲面打印,则需要创建曲面。如果点是分散的,那么您的基本选项是像triscatteredinter、griddata或文件交换中的最后一个这样的工具。给出了代码片段,可能会对您有所帮助
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)
给出的代码片段可能对您有所帮助
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)
当您说要在3D绘图中绘制所有三个点时,您的意思是要在绘图中为每个[x,y,z]绘制一个点吗?如果是这样,您可以只使用
plot3(X,Y,Z)
。这确实可行,但理想情况下,我想让surf工作,因为它更易于观察。当您说要在三维绘图中绘制所有三个点时,您的意思是要在绘图中为每个[X,Y,Z]绘制一个点吗?如果是这样的话,您可以只使用plot3(X,Y,Z)
。这确实有效,但理想情况下,我希望让surf工作,因为它更易于观看。