绘制具有2个变量的函数时遇到问题:
如果我这样做:
x= linspace(0,5);
y=linspace(0,5);
[x,y]=meshgrid(x,y);
z=log(x.*sqrt(y-x));
mesh(x,y,z);
我收到此错误:
使用网格时出错(第76行)X,Y,Z和C不能复杂。
我认为因为我在计算中有一些复杂的结果 我怎么解决?
答案 0 :(得分:2)
您期望什么样的输出?可以使用mesh(x,y,abs(z));
绘制绝对值,但我不确定这是否是您想要的。 quiver
是绘制数据的另一种可能性。
答案 1 :(得分:0)
您获得复杂结果的原因是代码中的sqrt(y-x)部分。 y几乎是网格中一半点的x,这导致计算负数的平方根。
所以,正如丹尼尔所说,你可以使用abs(z)。或者,您可以检查特定应用程序是否可以计算sqrt(abs(y-x))以确保在平方根下有正数