MATLAB: Nested for loop, too slow

for loopzero rows and columns

Hello, I have a 2464 x 2464 matrix (44 block matrixes 56×56). I need an algorithm to put at 0 at each iteration the rows and columns i, i + 56, i + 112, i + 168 …. i + 2352.
I wrote this:
for j=1:56
D=A;
for i=1:43
D(j,1:end)=0;
D(1:end,j)=0;
for m=j+(i*56)
D(m,1:end)=0;
D(1:end,m)=0;
end
C=D;
xlswrite('results.xlsx',C,j);
end
end
and, apparently, it works, but it's so slow. Too slow! Any suggestion?

Best Answer

It looks like you want to blank the entire row, correct?
A = 1:56:2464;
D(A,:) = 0;
EDIT** Change variable names as you need to, I just used generic ones without looking at what exactly you used.
Related Question