-5

Let's say I have an n x p matrix with columns [a_1, ... , a_p]. How can I use a for-loop to return all possible column permutations of this matrix (for example: **[a_2,a_1,...,a_p] etc. **)?

Stefan Voigt
  • 209
  • 2
  • 5
  • 18
  • 2
    Check out this other question: [Generate all possible combinations of the elements of some vectors (Cartesian product)](http://stackoverflow.com/questions/4165859/generate-all-possible-combinations-of-the-elements-of-some-vectors-cartesian-pr) – Schorsch Oct 20 '15 at 12:44

1 Answers1

1

If I understand correctly, you can generate all permutations of column indices with perms, and use the result to index into the matrix:

M = magic(3);              % // example matrix
pp = perms(1:size(M,2));   % // each row is a permutation
for p = pp.'               %'// "for" loops over columns, so transpose pp
    permuted_M = M(:,p);   % // matrix with permuted columns
end
Luis Mendo
  • 110,752
  • 13
  • 76
  • 147