MATLAB: Is the code not implementing for i==6 value

error

T = zeros(7,12);
for i = 1:7
for j = 1:12
if (i==1 || i==7)
T(i,j) = 1750;
end
if i==4 && (j>3 && j<9)
T(i,j) = 600;
end
if (i==2 || i==6) && (j>1 && j<11)
T(i,j) = (T(i+1,j)+T(i,j+1)+T(i-1,j)+T(i,j-1))/4;
end
end
end
Any help would be appreciated.

Best Answer

I see one apparent error. The condition (i==1 i==7) will never be true. You need an 'or' symbol in it: (i==1 | i==7).
Also notice that when i is equal to 6, T(i+1),j) will not have been set to 1750 as yet, so the expression
T(i,j) = (T(i+1,j)+T(i,j+1)+T(i-1,j)+T(i,j-1))/4;
may not give you the value you expect. To correct this will require rewriting the routine. Set up your 1750's and 600's first, then do the computation for i==2 | i==6.
Related Question