MATLAB:计算矩阵的所有可能的列排列

时间:2015-10-20 12:37:52

标签: matlab matrix

我们说我有一个n x p矩阵,列 [a_1,...,a_p] 。如何使用for循环返回此矩阵的所有可能的列排列(例如:** [a_2,a_1,...,a_p]等**)?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您可以使用perms生成列索引的所有排列,并使用结果索引到矩阵中:

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