Creating an m by n matrix of 0s and 1s from m-sized vector of column indexes
I have a m -dimensional vector of integers ranging from 1 to n . These integers are column indexes for m × n matrix. I want to create a m × n matrix of 0s and 1s, where in m -th row there's a 1 in the column that is specified by m -th value in my vector. Example: % my vector (3-dimensional, values from 1 to 4): v = [4; 1; 2]; % corresponding 3 × 4 matrix M = [0 0 0 1; 1 0 0 0; 0 1 0 0]; Is this possible without a for-loop? Of course, that's why they invented sparse matrices: >> M = sparse(1:length(v),v,ones(length(v),1)) M = (2,1) 1 (3,2) 1 (1,4) 1 which you can convert to a full matrix if you