我在Matlab中输入了这段代码:
[x,y]=meshgrid(-3:1:3,-3:1:3);
z=sqrt((y.*y)-(x.*x))
contour3(x,y,z)
但我也得到同样的错误。二维等高线图得出结论。给定代码的问题是什么?
答案 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
给出:
其中粗线表示虚部,细线表示实部。