Nested for loop, too slow
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Raffaele Giammetti
le 26 Avr 2019
Commenté : Raffaele Giammetti
le 28 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?
0 commentaires
Réponse acceptée
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.
Plus de réponses (0)
Voir également
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!