mesh和meshgrid维度方便

时间:2013-09-18 14:44:15

标签: matlab mesh

我使用网格图有一个维度问题。以下示例效果很好但我想绘制mesh(zz,TT,u(:,:,2,1))而不是mesh(u(:,:,2,1))。在这种情况下,尺寸不一致,matlab给出错误。我该如何订购此尺寸问题?

clear;
z=linspace(0,10,5);
T=linspace(0,20,50);
for j=1:length(T)-1
    for i=1:length(z)
         u(i,j,2,1)=z(i)*T(j)+10;
    end
end
figure(1)
[zz,TT]=meshgrid(z,T);
mesh(u(:,:,2,1))

2 个答案:

答案 0 :(得分:1)

代码可以简化为:

z = linspace(0,10,5);
T = linspace(0,20,50);
[zz,TT] = ndgrid(z, T(1:end-1));
uu = zz.*TT + 10;
%u(:,:,2,1) = uu;
mesh(zz, TT, uu)

我从T中取出一个较少的元素,因为这就是你填充矩阵u的方式。另请注意MESHGRID和NDGRID之间的区别

答案 1 :(得分:0)

你的问题根本不清楚。这是你在找什么?

z=linspace(0,10,5);
T=linspace(0,20,50);
for j=1:length(T)
    for i=1:length(z)
         u(i,j)=z(i)*T(j)+10;
    end
end

[TT, zz]=meshgrid(T, z);