matlab 列举从X数组中选出m个元素进行全排列的结果

matlab 列举出从X数组中选出m个元素进行全排列的所有结果。比如:x=[1,2,3,4],从中选出2个元素全排列的结果是(1,2)(2,1)(1,3)(3,1)(1,4)(4,1)(2,3)(3,2)(2,4)(4,2)(3,4)(4,3)

第1个回答  2013-07-30
function final_result=perm_comb(x,y)
n=[];
temp=combnk(x,y);
for k=1:size(temp,1)
n=[n;perms(temp(k,:))];
end
final_result = n;

调用:
final_result=perm_comb([1,2,3,4],2)

返回结果:
final_result =

4 3
3 4
4 2
2 4
3 2
2 3
4 1
1 4
3 1
1 3
2 1
1 2本回答被提问者采纳
第2个回答  2013-07-30
两重循环

for i=1:n

for j=(i+1):n
x(i,j)
x(j,i)
end
end追问

没有内置函数吗?就像combntns之类的?

追答

我没见过,不知道有没有。可以查查matlab的说明。

第3个回答  2013-07-30

>> [pct,P] = my_P(4,2)         % my_P.m 在附件中

pct =

    12

P =


     1     2

     1     3

     1     4

     2     1

     2     3

     2     4

     3     1

     3     2

     3     4

     4     1

     4     2

     4     3

相似回答