2013-09-18 5 views
0

У меня проблема с размерностью, используя сетку-график. Следующий пример работает хорошо, но я хочу построить mesh(zz,TT,u(:,:,2,1)) вместо mesh(u(:,:,2,1)). В этом случае размеры не согласуются, и Matlab дает ошибку. Как я могу заказать эту проблему измерения?mesh и meshgrid размерность

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)) 

ответ

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) 

Я достаю один меньше элемент из Т, потому что то, как вы заполнили матрицу u. Также обратите внимание на разницу между MESHGRID и NDGRID

+0

Благодарим вас за ответ! – pcepkin

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); 
Смежные вопросы