0

我使用网格图遇到了尺寸问题。以下示例效果很好,但我想绘制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))
4

2 回答 2

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 之间的区别

于 2013-09-18T17:27:07.207 回答
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);
于 2013-09-18T14:52:36.643 回答