在Matlab中绘制轮廓3D图

时间:2014-03-12 13:47:35

标签: matlab 3d contour

我在Matlab中输入了这段代码:

[x,y]=meshgrid(-3:1:3,-3:1:3);
z=sqrt((y.*y)-(x.*x))
contour3(x,y,z)

但我也得到同样的错误。二维等高线图得出结论。给定代码的问题是什么?

1 个答案:

答案 0 :(得分:2)

问题是,你引入的复数contour3无法处理。

使用

z = abs( sqrt((y.*y)-(x.*x)) )

z = real( sqrt((y.*y)-(x.*x)) )

或重新考虑你是否真的想要你正在做的事情。

对于2D contour命令,自动获取实际部分。你也可以做这样的事情来绘制。

[x,y] = meshgrid(-3:1:3,-3:1:3);

zr = real( sqrt((y.*y)-(x.*x)) )
contour(x,y,zr,'linewidth',1); hold on

zi = imag( sqrt((y.*y)-(x.*x)) )
contour(x,y,zi,'linewidth',3); hold off

给出:

enter image description here

其中粗线表示虚部,细线表示实部。