Matrix manipulation
    5 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
Hi,
I have a matrix A(1000,6) and i want to write 1's at certain positions say:
 i = [785 58 595 389 450 956];
 j = [4 6 2 3 5 1];
If I do A(i,j) = 1 it places 1's in the positions "i" of all the columns "j".
But what i want is:
 A(i(1),j(1)) = 1
 A(i(2),j(2)) = 1 
 ...
 A(i(end),j(end)) = 1
Does anybody knows how to do this without having to use a for loop?
1 commentaire
  Teja Muppirala
    
 le 12 Avr 2011
				Is there a compelling reason not to use a FOR loop? A loop will probably do this faster than any non-loop solution (that I can think of anyways).
Réponse acceptée
  Andrei Bobrov
      
      
 le 12 Avr 2011
        variant
 i = [785 58 595 389 450 956];
 j = [4 6 2 3 5 1];
 A(sub2ind(size(A), i, j)=1;
0 commentaires
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Matrix Indexing 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!


