Indexing a matrix with another matrix?
    3 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Petter Stefansson
      
 il 23 Set 2016
  
    
    
    
    
    Commentato: Petter Stefansson
      
 il 23 Set 2016
            Hi.
I have a 10000x4 matrix, Idx, where each row contains 4 indices to a logical matrix, A. I would like to set all indices in Idx to true (1) in A. This seems like something that should be possible to do very easy in one single line but I can’t quite figure it out so I’m currently doing it by looping:
A = false(10000,256);
for i = 1 : size(A,1)
    A(i,Idx(i,:)) = true;
end
which is very slow. Could someone tell me how to do this indexing without a loop?
Thanks
0 Commenti
Risposta accettata
  Andrei Bobrov
      
      
 il 23 Set 2016
        
      Modificato: Andrei Bobrov
      
      
 il 23 Set 2016
  
      [m,n] = size(Idx);
[ii,~] = ndgrid(1:m,1:n); % or ii = repmat((1:m)',1,n);
                          %    ii = (1:m)'*ones(1,n);
A(sub2ind(size(A),ii,Idx)) = true;
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Matrix Indexing in Help Center e File Exchange
			
	Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

