繁体   English   中英

在Matlab中绘制轮廓3D图

[英]Plotting a contour 3D plot in Matlab

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

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

但我得到同样的错误。 2D轮廓图解决了。给定代码的问题是什么?

问题是,你正在引入复杂数字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

得到:

在此输入图像描述

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM