Indexing a matrix with another matrix?
    조회 수: 3 (최근 30일)
  
       이전 댓글 표시
    
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
채택된 답변
  Andrei Bobrov
      
      
 2016년 9월 23일
        
      편집: Andrei Bobrov
      
      
 2016년 9월 23일
  
      [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;
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
			
	제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

