matlab 画三维图,提示矢量长度必须相同,怎么改

2024-11-01 20:18:33
推荐回答(2个)
回答1:

从你给出的表达式分析,出现提示:“错误使用 plot3,矢量长度必须相同。”的主要原因是除号前少标了一个小圆点。即

原为:z=(x.*exp(-x*800)+y.*exp(-y*800)-(x+y).*exp(-(x+y)*800))/(exp(-x*800)+exp(-y*800)-exp(-(x+y)*800));

应为:z=(x.*exp(-x*800)+y.*exp(-y*800)-(x+y).*exp(-(x+y)*800))./(exp(-x*800)+exp(-y*800)-exp(-(x+y)*800));

如想要达到图里的效果,建议不要使用plot3()函数,可以使用surf()函数或mesh()函数。

实现代码:

x==0:0.001:0.03;y=0:0.001:0.03;

[X,Y] = meshgrid(x,y);

Z=(X.*exp(-X*800)+Y.*exp(-Y*800)-(X+Y).*exp(-(X+Y)*800))./(exp(-X*800)+exp(-Y*800)-exp(-(X+Y)*800));

surf(X,Y,Z)

xlabel('x');ylabel('y');zlabel('z');

用两种方法绘制的图形。

回答2:

length xyz看看哪个矢量长度不同 然后找错误