Can anyone show me how I can avoid following for loops
Afficher commentaires plus anciens
*Hello everyone,
Can anyone show me how I can avoid following for loops.
Thanks!*
mth=0;
nth=0;
for i=1:1000
ML = [1,2;3,4];
for ix=1:size(ML,1)
for iy=1:size(ML,2)
M(mth+ix,nth+iy)=ML(ix,iy);
end
end
mth = mth+size(ML,1);
nth = nth+size(ML,2);
end
Réponse acceptée
Plus de réponses (1)
Walter Roberson
le 8 Oct 2012
for iy=1:size(ML,2)
M(mth+ix,nth+iy)=ML(ix,iy);
end
can be written as
MLc = size(ML,2);
M(mth+ix, nth:nth+MLc-1) = ML(ix, 1:MLc);
3 commentaires
Daniel Shub
le 8 Oct 2012
Modifié(e) : Daniel Shub
le 8 Oct 2012
Are you sure? If nth is 0 and MLc is 2, nth:nth+MLc-1 gives [0, 1] which causes indexing problems. I think it is nth+(1:MLc) on the RHS.
Walter Roberson
le 8 Oct 2012
Modifié(e) : Walter Roberson
le 8 Oct 2012
Yes, that would make sense on the LHS.
Daniel Shub
le 8 Oct 2012
Yes, LHS not RHS...
Catégories
En savoir plus sur Matrix Indexing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!