我正在尝试在z = 0.5处为以下surf
图绘制一条线。代码很简单,但现在我想在surf
图中包含一行0.5,例如。我的参数是Xq
,Yq
和Vq
,我将其输入到MATLAB的surf
命令中。 Xq
,Yq
和Vq
都是meshgrid
生成的2001x4001矩阵。在给定特定容差的情况下,我发现Vq
中的点等于0.5,并且我使用x和y坐标离开了find
命令,但是我从这里输掉了。
实现这一目标的最佳方法是什么?
答案 0 :(得分:2)
您可以使用contour3
绘制表面等于0.5的线条。您可以使用第四个输入参数指定您想要Vq
为0.5的3D线。
% Load in some sample data
[Xq, Yq, Vq] = peaks();
% Plot your surface
surf(Xq, Yq, Vq, 'EdgeColor', 'none');
hold on
% Now plot the 3D contour
contour3(Xq, Yq, Vq, [0.5 0.5], 'k');
如果您想获得与该轮廓相关联的Xq
和Yq
值,您可以使用输出调用contour3
,该输出将返回与此关联的ContourMatrix
轮廓
values = contour3(Xq, Yq, Vq, [0.5 0.5], 'k');