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 Related SolutionsMATLAB: Matrix indexing without loop v = B(sub2ind(size(B), 1:size(B,1), ind)) MATLAB: Find 4d matrix positions "I tried with ind2sub but it was useless."It worked for me. First lets define some fake data:>> A = zeros(5,4,3,2);>> A(5,3,2,1) = 1;>> A(3,1,1,2) = 1;then get the indices of non-zero array elements:>> [R,C,P,Q] = ind2sub(size(A),find(A));>> M = [R,C,P,Q]M = 5 3 2 1 3 1 1 2 Related QuestionMatrixHow can i extract the value of an element of a sparse doubleMatrixArrangement of matrix elements in specific orderConvert xy Coordinates to MatrixMatrix
Best Answer