Clear Filters
Clear Filters

Nested for loop, too slow

3 views (last 30 days)
Raffaele Giammetti
Raffaele Giammetti on 26 Apr 2019
Hello, I have a 2464 x 2464 matrix (44 block matrixes 56x56). 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?

Accepted Answer

Bob Thompson
Bob Thompson on 26 Apr 2019
Edited: Bob Thompson on 26 Apr 2019
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.
  1 Comment
Raffaele Giammetti
Raffaele Giammetti on 28 Apr 2019
Yes, so simple so perfect. Shame on me!
Thank you very much :)

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!