Filter löschen
Filter löschen

Nested for loop, too slow

3 Ansichten (letzte 30 Tage)
Raffaele Giammetti
Raffaele Giammetti am 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?

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by