Matrix indexing using a vector
Show older comments
Let's say I have a vector b where each row correspond to an index for each row in the matrix A. I want to assign 1 to these elements, like in the matrix C, without loops. Thank you
A = zeros(4,3);
b = [2;1;2;3];
C = [0 1 0; 1 0 0; 0 1 0; 0 0 1]
Accepted Answer
More Answers (1)
Andrei Bobrov
on 30 May 2016
C = accumarray([(1:numel(b))' b],1)
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!