Matlab 使用Meshgrid和Surfc绘制三维函数
我知道这似乎是一个基本问题,而且很可能是。我在学习如何使用meshgrid和surfc绘制此函数时遇到困难。我一直得到这样一个错误,即曲面Z必须包含多行或多列。为什么我会犯这个错误?我要做的是:Matlab 使用Meshgrid和Surfc绘制三维函数,matlab,plot,3d,Matlab,Plot,3d,我知道这似乎是一个基本问题,而且很可能是。我在学习如何使用meshgrid和surfc绘制此函数时遇到困难。我一直得到这样一个错误,即曲面Z必须包含多行或多列。为什么我会犯这个错误?我要做的是: x = 0:.01:1; y = 0:.01:1; f = @(x, y) sin(4*pi.*x).*sin(y).*(1-y) + (1./sqrt(1+10.*(x.^2)+ 100.*(y-0.5).^2)) Z = f(x, y); [X, Y] = meshgrid(x, y) surf
x = 0:.01:1;
y = 0:.01:1;
f = @(x, y) sin(4*pi.*x).*sin(y).*(1-y) + (1./sqrt(1+10.*(x.^2)+ 100.*(y-0.5).^2))
Z = f(x, y);
[X, Y] = meshgrid(x, y)
surfc(X, Y, Z)
明白了:
x = 0:.01:1;
y = 0:.01:1;
f = @(x, y) sin(4*pi.*x).*sin(y).*(1-y) + (1./sqrt(1+10.*(x.^2)+ 100.*(y-0.5).^2))
[X, Y] = meshgrid(x, y)
Z = f(X, Y);
size(x)
size(Y)
size(Z)
surfc(X, Y, Z)
嗯,听起来好像surfc在抱怨Z的大小。使用大小检查X、Y和Z的大小。他们是你所期望的吗?这和帮助中对Z的描述相符吗?X和Y都是101乘101。这些是有意义的b/c我使用的是网格网格。然而,Z是1乘101。这是没有意义的,因为假设Z是一个在101×101点处计算的3d曲面。如果这是正确的,我如何找到一种方法让Z变成101乘101?仔细看看你传递给f调用的x和y。它们是否也是您希望传递到那里的内容,特别是关于meshgrid调用的内容?Matlab区分大小写。好的,谢谢,明白了。它应该是fX,Y,并且直线Z=fX,Y应该移动到下一行的下方。