具有2个变量的函数的Matlab图

时间:2013-12-15 23:02:39

标签: matlab

绘制具有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不能复杂。

我认为因为我在计算中有一些复杂的结果 我怎么解决?

2 个答案:

答案 0 :(得分:2)

您期望什么样的输出?可以使用mesh(x,y,abs(z));绘制绝对值,但我不确定这是否是您想要的。 quiver是绘制数据的另一种可能性。

答案 1 :(得分:0)

您获得复杂结果的原因是代码中的sqrt(y-x)部分。 y几乎是网格中一半点的x,这导致计算负数的平方根。

所以,正如丹尼尔所说,你可以使用abs(z)。或者,您可以检查特定应用程序是否可以计算sqrt(abs(y-x))以确保在平方根下有正数