MATLAB: Multiple combinations of a matrix

combinationsmatrixmatrix manipulation

I have a matrix m, with 2 columns, M= [1, 2; 3, 4; 5, 6].
I need to the combinations of column one with its assocated column two entry.
For example:
x = [1, 2, 3, 4; 1, 2, 5, 6; 3, 4, 5, 6]

Best Answer

Try the following, it should work for any size of M.
function x = pairCombos(M)
numRows = size(M,1);
C = combnk(1:numRows,2); % Lists every pair combination of row indicies.
x = zeros(size(C,1),size(M,2)*2); % Preallocate space for variable x.
for i = 1:size(C,1)
x(i,:) = [M(C(i,1),:) M(C(i,2),:)]; % generate x as requested.
end
end
The final order depends the output from the combnk function. You might also consider using the sortrows function afterwards.