你好,谢谢你的回答,可能是我说的不清楚。我是想要这样的,如下:
a=[1 2 3; 4 5 6]
怎么让他变成
1 2 3
1 2 6
1 5 3
1 5 6
4 2 3
4 2 6
4 5 3
4 5 6
你这个是什么排列啊
追问算是组合吧
追答就是第一列不变 第二三列组合吗
追问就是第几列的数据必须在第几列,不能换列,在这个前提下,进行组合,比如有11列,每列有2个数,那么应该有2^11种组合。
追答给你解决了,很费劲的呀,呵呵。代码及结果为:(有什么不明白的欢迎继续追问)
a=[1 2 3; 4 5 6];
[m,n]=size(a);
aaa=[];
for i=1:n
b=perms(a(:,i));
c=b';
for j=1:factorial(m)
aa=[];
for k=1:(i-1)
aa=[aa a(:,k)];
end
aa=[aa c(:,j)];
for k=i+1:n
aa=[aa a(:,k)];
end
aaa=[aaa;aa];
aaa=unique(aaa,'rows');
end
end
aaa
aaa =
1 2 3
1 2 6
1 5 3
1 5 6
4 2 3
4 2 6
4 5 3
4 5 6