我正在尝试使用下面的代码绘制一个彩色地图:
[x,z] = meshgrid(0:100:600,0:100:600);
mm = size(z);
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;
我在for循环中使用了z2和x2,因为我只想使用网格中的第一到第三个元素,这意味着x和z都是0,100,200,但matlab返回了错误:
使用surf时出错(第74行)数据维度必须一致。
测试图出错(第10行) surf(x,z,E,'EdgeColor','None');
但是如果我设置z2 = 3:7和x2 = 3:7,那么它可以生成一个没有错误的图,但我不知道为什么会这样,以及如何实现我想要绘制的结果?
发布于 2016-09-23 09:36:12
矩阵维度不匹配。由于您制作了7x7网格矩阵,因此结果矩阵E必须是7x7矩阵。
请尝试下面的代码。
[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是7x7矩阵,因此可以避免矩阵尺寸错误。
https://stackoverflow.com/questions/39651124
复制相似问题