MATLAB: How to contruct a matrix with elements set to 1 given by the index position in another matrix

indexingMATLABmatrix manipulation

Hello. I have a a matrix that tells me which of the positions in the other matrix should be set to one. For example-
[2,3,4;3,4,5;1,2,3]
Tells me that I need a matrix like this :
[0 0 1 1 1 0 ; 0 0 0 1 1 1; 0 1 1 1 0 0 ]
How can I obtain this? Thanks in advance

Best Answer

coloffsets = [2,3,4;3,4,5;1,2,3]
result = zeros(size(coloffsets, 1), 1+max(coloffsets(:)));
result(sub2ind(size(result), repmat((1:size(coloffsets, 1))', 1, size(coloffsets, 2)), 1+coloffsets)) = 1