错误:冲浪图:Z必须是矩阵,而不是标量或矢量

时间:2016-09-16 18:04:40

标签: matlab

我希望有一个二维彩色地图,下面的代码,但它一直让我回复这个错误,任何人都可以帮助我

x = 0:100:600;

z = 0:100:600;

[X,Z] = meshgrid(x,z);

for z2 = 3:5;

    for x2 = 3:5
        E1 = Z(z2);
        E2 = X(x2);
        E = E1 +E2;
    end
end



figure;

surf(X,Z,E,'EdgeColor','None');

view(2);

xlabel('x','fontsize',20);

ylabel('z','fontsize',20);

colormap jet;

1 个答案:

答案 0 :(得分:1)

每个EX条目都需要Z条目才能拥有有效的表面,因为您需要" height"对于每个x / y位置。

在您的示例中,E只是一个标量,而XZ包含许多值。您似乎想要做类似的事情:

E = Z + X;

surf(X, Z, E, 'EdgeColor', 'none')

如果你想要一个给定高度的平面(E),那么将Z作为一个矩阵,其中所有值都等于E

surf(X, Z, zeros(size(X)) + E, 'EdgeColor', 'none')

如果您只想绘制子集,可以执行以下操作:

[X, Z] = meshgrid(x(3:5), z(3:5));
surf(X, Z, X + Z, 'EdgeColor', 'None')