如何在选择的(x,y,z)3D平面上显示2D数据的轮廓?

时间:2019-01-17 18:40:39

标签: 3d 2d matlab-figure contour contourf

我正在2D matrix中绘制Matlab的轮廓。 默认情况下,轮廓线放置在(x,y)平面上。同样默认情况下,(x,y)平面位于3D space中的垂直平面z = 0上。

我正在寻找一种将xD值显示在(y,z)平面上的2D切片的解决方案。也就是说,我试图将2D水平切片显示为我选择在x轴上哪个位置的“垂直帘”。

我尝试创建一个2D grid并在选定的x级别向其添加第三个网格:

[y,z] = meshgrid(coord1,coord2); % the 2D grid
xlevel = 2;
x = xlevel.*ones(size(y)); % the third grid

我能够成功地使用此网格通过以下方式显示数据:

surf(x,y,z,data)

这会产生我需要的结果,但它是surf图,而不是contourf图。当给定相同的参数时,contourf函数将产生以下错误消息:

contourf(x,y,z,data)
  

使用轮廓线f时出错(第61行)

     

轮廓级别值必须是矢量或标量。

因为将第三个参数(z)视为要显示的数据,而将第四个参数(data)视为要显示的轮廓/等值线的值(这是错误消息所在的位置)已创建。)

由于我不明白的原因,以下内容不会产生错误消息(但也不会显示任何内容):

contourf(x,y,z,data,30)

使用contourf达到与surf得到的结果相同的想法吗?

0 个答案:

没有答案