0

mesh(zz,TT,u(:,:,2,1))mesh-plot を使用すると次元の問題が発生します。次の例はうまく機能しますが、代わりにプロットしたいです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 から 1 つ少ない要素を取り出します。これは、行列を埋めた方法だからですu。MESHGRID と NDGRID の違いにも注意してください。

于 2013-09-18T17:27:07.207 に答える