彩色地图绘图,使用surf()时出错数据维度必须一致

时间:2016-09-23 01:18:09

标签: matlab error-handling colormap

我正在尝试使用以下代码制作彩色地图:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout);

    Intent extras = getIntent();
    String isConnected = extras.getStringExtra("isConnected");
    String serverIP = extras.getStringExtra("serverIP");
}

我在for循环中使用了z2和x2因为我只想在meshgrid中使用第一个到第三个元素,这意味着x和z都是0,100,200,但matlab会给我返回错误:

使用冲浪时出错(第74行) 数据维度必须达成一致。

测试图中的错误(第10行) 冲浪(X,Z,E, 'EdgeColor', '无');

但是如果我设置z2 = 3:7和x2 = 3:7,那么它可以生成没有错误的图形,但我不知道为什么会这样,我怎样才能实现我想要绘制的图形?

1 个答案:

答案 0 :(得分:0)

矩阵尺寸不匹配。由于你制作了7by7网格网格矩阵,因此结果矩阵E必须是7by7矩阵。

请尝试以下代码。

[x,z] = meshgrid(0:100:600,0:100:600);
mm = size(z);

E=zeros(7,7); %initializing result matrix E

for z2 = 1:3
    for x2 = 1:3
        E(z2,x2) = (x(x2))^2 + (z(z2))^2;
    end  
end

figure;
surf(x,z,E,'EdgeColor','None');
view(2);
xlabel('x','fontsize',20);
ylabel('z','fontsize',20);
colormap jet;  

在3:7的情况下,由于结果矩阵E是7by7矩阵,可以避免矩阵维度误差。