我使用网格图有一个维度问题。以下示例效果很好但我想绘制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))
答案 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);