我正在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
得到的结果相同的想法吗?