Effacer les filtres
Effacer les filtres

Nested for loop, too slow

3 vues (au cours des 30 derniers jours)
Raffaele Giammetti
Raffaele Giammetti le 26 Avr 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?

Réponse acceptée

Bob Thompson
Bob Thompson le 26 Avr 2019
Modifié(e) : Bob Thompson le 26 Avr 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 commentaire
Raffaele Giammetti
Raffaele Giammetti le 28 Avr 2019
Yes, so simple so perfect. Shame on me!
Thank you very much :)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by