MATLAB: Set Matrix Elements based on Coordinates Matrix

vectorization

Hello
lets say i have a matrix C with Coordinates … C = [2 3; 4 4];
And a matrix M = zeros(4);
Now i want to set some elements in M based on coordinates from C.
How can i do this without forloop?

Best Answer

You can use sub2ind to convert you coordinate array to linear indices. Then you can use normal indexing to set values.
C = [2 3; 4 4];
M=zeros(4,4);
ind=sub2ind(size(M),C(:,1),C(:,2));
M(ind)=1;
disp(M)
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1